1. 第一种方式
成员初始化列表。在构造函数的参数列表后使用冒号分割的一组初始化语句。
class my_class {
public:
my_class(int a, int b): m_x(a), m_y(b) {
/*....*/
}
private:
int m_x;
int m_y;
};
2. 第二种方式
在构造函数内部使用赋值语句进行初始化变量。
class my_class{
public:
my_class(int a, int b) {
m_x = a;
m_y = b;
}
private:
int m_x;
int m_y;
};
3. 优劣
成员初始化列表的效率比在构造函数体内部使用赋值语句要高,因为成员初始化列表可以直接初始化成员变量,而不需要先调用默认构造函数再赋值。因此,在实际开发中,应该尽可能使用成员初始化列表来初始化类的成员变量。