构造函数和析构函数

1>构造函数能否为虚函数?

构造函数不能是虚函数,因为构造函数要是虚函数的话,那么实际执行的是父类的对应的函数,而不执行定义类的函数;

析构函数可以是虚构函数,而且,在一个复杂类的结构中,这往往是必要的,析构函数也可以是纯虚函数,但纯虚函数必须有定义体,因为析构函数的调用是在子类中隐含。

2>简述在子类与父类的析构,构造函数的调用顺序

析构函数的调用顺序是先是基类然后是派生类,构造函数的调用顺序是先是派生类然后是基类。

3>谈谈是拷贝构造函数和赋值运算符的知识?

拷贝构造函数是新生成的类对象,而赋值运算符不是

由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个类对象之前不用检查源对象是否和新建对象相同,而赋值运算符需要这个操作,另外赋值运算符中如果原来的对象中有内存分配,要先把内存释放。

原文地址:https://www.cnblogs.com/chenyang920/p/5267138.html