将Base析构函数的自我副本创建移到拷贝构造函数中,避免出现重复创建的情况。
示例代码如下:
class Base {
public:
Base() {
// 构造函数
}
Base(const Base& other) {
// 拷贝构造函数
// 创建自身副本
}
virtual ~Base() {
// Base析构函数
// 移除不必要的代码:创建自身副本
}
// 其他成员函数和成员变量
};