C++函数(1)
1. 内联函数
用法
采取以下措施之一:
- 在函数声明前加上关键字inline
- 在函数定义前加上关键字inline
通常的做法是省略原型,将整个定义放在原本应该提供原型的地方
inline double square(double x) { return x*x; }
2. 引用变量
引用是已定义的变量的别名。例如,如果将b作为a的引用,那么可以交替使用a和b来表示该变量。
创建引用变量
int rats;
int& rodents = rats;
- 其中,&不是取地址符,而是类型标识符的一部分。
- rats和rodents的地址都相同
- 必须在声明引用时就将其初始化
int rats = 101;
int& rodents = rats; // rodents is a reference
int bunnies = 50;
rodents = bunnies;
// now rats = rodents = bunnies = 50
将引用作为函数参数
以交换两个变量的值为例
void swapr(int& a, int &b){
int temp;
temp = a;
a = b;
b = temp;
}
void swapp(int* p, int* q){
int temp;
temp = *p;
*p = *q;
*q = temp;
}
// 调用
int wallet1 = 200;
int wallet2 = 300;
swapr(wallet1, wallet2);
swapp(&wallet1, &wallet2)
引用和指针都能成功交换两个变量的值
3. 默认参数
默认参数指的是当函数调用中省略了实参时自动使用的一个值。
- 必须通过函数原型来设置默认值
char* left(const char* str, int n = 1);
如果省略参数n,则它的值为1。否则,传递的值将覆盖1。
- 对于带参数列表的函数,必须从右到左添加默认值。
int harpo(int n, int m =4, int j = 5); // valid
int harpo(int n, int m = 6, int j); // not valid
int harpo(int k = 1, int m = 2, int n = 3); // valid
- 实参按照从左到右的顺序依次被赋给相应的形参,而不能跳过任何参数
beeps = harpo(3, ,8) // not valid

浙公网安备 33010602011771号