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

4. 函数重载

5. 函数模板

posted @ 2020-12-27 23:22  _一只土拨鼠  阅读(44)  评论(0)    收藏  举报