类的6个默认的成员函数


构造函数

1. 概念  

构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时,由编译器自动调用,在对象的生命周期内只调用一次,保证每个数据成员都有一个合适的初始值

2. 构造函数特性

·  函数名与类名相同

·  没有返回值

·  新对象被创建时,由编译器自动调用,且在对象的声明周期内仅调用一次

·  构造函数可以重载,实参决定了调用那个构造函数

·  无参构造函数和带有缺省值的构造函数都认为是缺省的构造函数,并且缺省的构造函数只能有一个

·  有初始化列表(可以不用)

·  如果没有显式定义时,编译器感觉自己需要时(如果A类中包含了B类的对象,且B类缺省的构造函数,A类没有显示定义自己的构造函数)再去合成一个默认的构造函数

·  构造函数不能用const修饰(为什么?)构造函数不能为虚函数(为什么?)

3. 对象初始化 

 初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个”成员变量”后面跟一个放在括号中的初始值或表达式 

 注意:

每个成员在初始化列表中只能出现一次(为什么?)

初始化列表仅用于初始化类的数据成员,并不指定这些数据成员的初始化顺序,数据成员在类中定义顺序就是在参数列表中的初始化顺序尽量避免使用成员初始化成员,成员的初始化顺序最好和成员的定义顺序保持一致类中包含以下成员,一定要放在初始化列表位置进行初始化:引用成员变量const成员变量类类型成员(该类有非缺省的构造函数)


猜你喜欢

转载自blog.csdn.net/fantian_/article/details/80830631