- 内联函数的声明是在函数定义的类型前加上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。
- 引用
对于结构体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类型的,所以不可以改变。
本文详细介绍了C++中内联函数、默认参数、函数重载等特性,并探讨了如何使用引用进行内存分配,以及引用作为函数参数的优势。

被折叠的 条评论
为什么被折叠?



