C++第一节课 要点摘抄

本文详细介绍了C++中内联函数、默认参数、函数重载等特性,并探讨了如何使用引用进行内存分配,以及引用作为函数参数的优势。
  1. 内联函数的声明是在函数定义的类型前加上inline修饰符

► 内联函数中不允许用循环语句和switch语句。

► 内联函数的声明必须出现在内联函数第一次被调用之前。

 

2 .默认参数

C++允许在函数定义或函数声明时, 为形参指定默认值, 这样的参

数称为默认参数(default argument) ,

 一般形式为:

返回类型 函数名(...,类型 默认参数名=默认值)

{ 函数体 }

►(1) 如果在函数定义时设置了默认参数, 那么就不能在函数声明

中再次设置, 反之亦然。

►(2) 可以设置多个默认参数, 设置的顺序为自右向左, 换言之,

要为某个参数设置默认值, 则它右边的所有参数必须都是默认参数。

►(3) 默认值可以是常量、 全局变量, 甚至是一个函数调用(调用

实参必须是常量或全局变量的表达式) , 不可以是局部变量。

►默认参数函数的调用

►默认参数本质上是编译器根据函数声明或函数定义时的默认参数设

置, 对函数调用中没有给出来的实参自动用默认值表达式“补齐”

再进行编译。

 

函数重载(function overloading) 是在同一个域中用同一个函数名

来定义多个函数, 但函数参数列表应彼此有不同, 或者是参数个数

不同, 或者是参数类型不同, 或者两者均有不同。

函数重载的使用说明:

►(1) 重载函数的形参必须不同(个数不同或类型不同) 。

►(2) 编译程序将根据实参和形参的类型及个数的最佳匹配来选择

调用哪一个函数。

►(3) 不要将不同功能的函数声明为重载函数, 以免出现调用结果

的误解、 混淆

 

函数形参可以是指针类型, 一般形式为:

返回类型 函数名(指向类型 *指针变量名,...)

{

函数体

}

 

(1)命名空间。

使用命名空间时候,using A::a(A为一个命名空间),那么它的优先级比using namespace std高,也就是说如果std里面也有定义a,由于A::a的优先级更高,因此当之后函数调用a,就是使用了A命名空间中的a。

 

  1. 引用

对于结构体Test,我们可以把&a理解为一个常指针,所以它占用四个字节。

通过对象名称直接访问对象, 优点是直观, 操作哪个对象一目了然,

缺点一个函数内部不能使用另一个函数的局部变量;

►通过指针(或地址) 间接访问对象, 优点是无所不能, 缺点是程序

中大量出现的间接访问, 实在分不清具体是哪个对象, 需要通过上

下文去分析。

►C++扩充了C语言对象访问方式, 提供了引用访问。 通过引用访问

对象, 结合了按名访问和按地址访问各自的优点, 非常适合作为函

数参数

 

2.用引用实现内存的分配

MemInit函数用*&p去接收,那么修改了p,就相当于修改了ptr的内容。

如果只是用*p的话,那么*p指向ptr,因此只修改p是达不到修改ptr内容的目的的。

声明一个引用类型变量时, 必须同时初始化它, 声明它是哪个对象的别名, 即绑定对象

引用作为函数形参

►C++之所以扩充引用类型, 主要是把它作为函数形参, 使得C++中

给一个函数传递参数有三种方法:

►①传递对象本身;

►②传递指向对象的指针;

►③传递对象的引用。

 

3.对于一个常数,是不可以直接用int &b = 1去直接指向的,但是可以用const int &b = 1去实现。由上例可以看出,如果用const int的c去指向a,那么a改变了c就跟着改变,但是c由于自己是const类型的,所以不可以改变。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值