构造函数的几点总结:
1.C++派生类在其构造函数中一般利用初始化列表去初始化派生类中的成员,这样能够提升效率;另外,如果未调用基类的构造函数(初始化列表中为初始化基类),则派生类会调用基类的默认构造函数
2.派生类中的构造函数若要调用基类有参构造函数,则在其初始化列表中一般要初始化基类的有参构造函数。
3.类在无构造函数时编译器会生成默认构造函数;在有构造函数的时候编译器不会生成构造函数。
初始化列表的总结:
1 因为初始化列表中无法直接初始化基类的数据成员,所以你需要在列表中指定基类的构造函数,如果不指定,编译器则会调用基类的默认构造函数。
2 推荐使用初始化列表,它会比在函数体内初始化派生类成员更快,这是因为在分配内存后,在函数体内又多进行了一次赋值操作。
3 初始化列表并不能指定初始化的顺序,正确的顺序是,首先初始化基类,其次根据派生类成员声明次序依次初始化。