C/C++ 语言中的for、friend、goto、inline 和mutable关键字解析

发表时间: 2024-04-01 20:59

for

语法:

  for( initialization; test-condition; increment ) {    statement-list;  }

for构造一个由4部分组成的循环:

  1. 初始化, 可以由0个或更多的由逗号分开的初始化语句构成;
  2. 判断条件,如果满足该语句循环继续执行;
  3. 增量, 可以由0个或更多的由逗号分开的增量语句构成;
  4. 语句体,由0个或更多的语句构成,当循环条件成立时他们被执行.

例如:

    for( int i = 0; i < 10; i++ ) {      cout << "i is " << i << endl;    }    int j, k;    for( j = 0, k = 10;         j < k;	 j++, k-- ) {      cout << "j is " << j << " and k is " << k << endl;    }    for( ; ; ) {      // loop forever!    }

friend

关键字friend允许类或函数访问一个类中的私有数据.

goto

语法:

  goto labelA;  ...  labelA:

goto语句可以完成从当前位置到指定标志位的跳转.使用goto语句要考虑有害性,所以它不经常使用. 例如, goto可以用来跳出多重嵌套 for 循环,它比额外的逻辑性跳出更具有时效性.

inline

语法:

  inline int functionA( int i ) {    ...  }

inline这个关键字请求编译器扩张一个给定的函数。它向这个函数发出一条插入代码的call。函数里面有静态变量,嵌套的,switches,或者是递归的时候不给予内联。当一个函数声明包含在一个类声明里面时,编译器会尝试的自动把函数内联。
关键字inline请求编译器给一个函数扩展空间,它向这个函数发出一条插入代码的call.函数里面有 static 数据, 循环, switches, 或者是递归的时候不给予内联.当一个函数声明包含在一个类声明里面时,编译器会尝试的自动把函数内联.

mutable

关键字mutable 忽略所有const 语句.一个属于const对象的mutable 成员可以被修改.