小儿科备忘一下

来源:互联网 发布:sql 的not in中的为空 编辑:程序博客网 时间:2024/05/16 14:36

1、关于引用:

引用,可以看成是另一个变量的别名。

 

引用使用的注意事项:

(1)声明引用时必须同时对它初始化,使它指向一个已经存在的对象。

例如:

 

int & ri; //error,引用应该在声明的时候初始化

ri = i; 

(2)一个引用被初始化后,就不能改为指向其它对象,也就是说,一个引用从诞生起 ,就必须确定是哪个对象的别名,而且始终只能作为这一个变量的别名,而不能另作他用。

 

 

2、内联函数(inline)

(1)内联函数定义必须出现在使用前

(2)内联函数内不能有循环语句

(3)内联函数内不能进行异常接口声明

(4)inline关键字只表示一个要求,编译器并不承诺将inline修饰的函数作为内联

(5)内联成员函数,有两种声明方式(显式和隐式),显式在类外面用inline关键字声明,隐式直接将函数体写在类声明的内部。无论那种方式,都要注意一点:一个内联函数需要在每个调用它的编译单元(一个文件就是一个编译单元)中给出一个完全一致的实现,这一点和类声明一致,因此惯用的做法是将内联函数的实现写在类声明的头文件中,由调用的编译单元(文件)包含这个头文件。

 

3、带默认参数的构造函数

 

eg: 

 

(1)默认参数的默认顺序必须从右到左(也就是说如果一个构造函数右边的参数没有默认,则它左边的参数一定不能默认),这是由于实参的赋值顺序是从左到右初始化的

(2)默认的形参值应该在函数原型(声明)中给出

(3)在相同的作用域内,默认形参值应该保持唯一,但在不同的作用域内 ,允许使用不同的默认值。这时候具体使用哪个默认值遵循“近水楼台先得月”的原则。

eg: 

(4)没有默认值的形参必须用实参来传值

(5)使用具有默认形参值的函数重载形式时,需要注意防止二义性。

例如:

 

3、拷贝构造函数

调用拷贝构造函数的几种情况:

(1)当类的一个对象去初始化另一个对象时

eg:

(2)函数的形参是类的对象,调用函数时进行形参和实参结合时

eg:

(3)如果函数的返回值是一个类的对象,函数执行完返回调用者时

eg:

综合例子

运行结果:


 

 

休息一下,马上回来。。。

原创粉丝点击