转自:http://blog.sina.com.cn/s/blog_e2c416130102v2b0.html
关于类的构造函数,可以分为两个部分,初始化部分(初始化列表)和计算部分(花括号间的赋值运算),在花括号作用域间进行的运算不是初始化,而是赋值。
对于必须在定义时初始化的情况在类构造函数中也是相同的
总结如下:
1、const成员:常量,不能被改变,定义的同时必须初始化
2、引用成员:&,别名,与目标共享地址,定义的同时必须初始化
3、没有默认构造函数供系统自动调用:
(1)对象成员:A类的成员是B类的对象,在构造A类时需对B类的对象进行构造,当B类没有默认构造函数时需要在A类的构造函数初始化列表中对B类对象初始化
(2)类的继承:派生类在构造函数中要对自身成员初始化,也要对继承过来的基类成员进行初始化,当基类没有默认构造函数的时候,通过在派生类的构造函数初始化列表中调用基类的构造函数实现
下面是1、2验证程序
#include
using namespace std;
//const成员的初始化只能在构造函数的初始化列表中进行
//引用成员的初始化也只能在构造函数的初始化列表中进行
class object
{
public:
private:
};
int main(void)
{
}
下面是3验证程序
#include
using namespace std;
class Base
{
public:
};
class Derived : public Base
{
public:
};
int main(void)
{
}
来自对学习资料的整理,欢迎指正!