在C++初始化类的成员数据有两种方式
1. 在构造函数中实现
2. 定义初始化成员列表来初始化成员数据
class point { private: int x,y; public: point(int m,int n) { x=m; y=n; } }; class point { private: int x,y; public: point(int m=0,int n=0):x(m),y(n){} };
这两种初始化成员数据方式有差别,用构造函数初始化成员数据其实就是用赋值来实现,用初始化成员列表则只是直接对数据成员进行初始化。具体在以下三种情况下使用初始化成员列表
1. 需要初始化的数据成员是对象
如果需要初始化的数据成员是对象,则如果用构造函数初始化,则要调用该类的拷贝构造函数,产生临时对象,如果直接对该需要初始化的对象进行初始化,则会带来性能上的优异。
2. 需要初始化const修饰的数据成员
const修饰的变量是不能进行赋值操作的,因此只能直接初始化
3. 需要初始化引用成员数据
引用类型同const修饰的数据成员,也是只能进行初始化。