下面是具体实现
总结:
A类创建a对象
申请:A类构造函数
释放:A类析构函数
B类创建b对对象
申请:先调用A类的构造函数,然后再调用B类的构造函数
释放:先调用B类析构函数,然后再调用A类构造函数
A类创建对象,用B类初始化
申请:先调用A类构造函数,然后再调用B类构造函数
释放:只调用A类构造函数
为了避免上面的问题,要把基类的析构函数写成虚函数
下面是具体实现
总结:
A类创建a对象
申请:A类构造函数
释放:A类析构函数
B类创建b对对象
申请:先调用A类的构造函数,然后再调用B类的构造函数
释放:先调用B类析构函数,然后再调用A类构造函数
A类创建对象,用B类初始化
申请:先调用A类构造函数,然后再调用B类构造函数
释放:只调用A类构造函数
为了避免上面的问题,要把基类的析构函数写成虚函数