构造函数和析构函数的说明
1、构造函数不允许为虚函数,因为虚函数会有指向虚函数列表的指针;对象生成的过程为:先申请内存,然后调用构造函数生成对象。
2、析构函数可以为虚函数,且存在子类的类最好是定义为虚函数,否则会造成删除指向子对象的父指针时不能调用子对象的析构函数。
3、析构函数可以为纯虚函数,但必须把它实现,否则会编译不能通过,因为子对象仍是要调用父类的析构函数。
4、一个不包含任何成员变量只有非虚成员函数的类,其大小为1字节。如果存在虚函数,则其大小为4字节,不管有多少虚函数,均为4字节。
5、必须使用类参数初始化列表的情形:A,类中包含带参数的构造函数的对象;B,类中包含const变量;C,类中包含引用类型。