我有一个类 A
。
A
有自己的析构函数。
我使用 A
定义 B
如下。
class A{
protected:
int* array;
public:
A(int size){array = new int[size];}
~A() { delete [] array;}
}
class B{
public:
A x;
}
我应该如何为 B
定义析构函数?
提前致谢。
最佳答案
您不必对 B
类做任何特殊的事情。在这种情况下,编译器生成的析构函数将做正确的事情。
class A
要么缺少赋值运算符和复制构造函数,要么您必须通过将它们设为私有(private)来禁用它们。如果您复制或分配一个 A
实例(因此也是一个 B
实例),编译器生成的将导致问题。参见 the rule of three。
关于c++ - 如果 B 使用类 A (c++),如何定义类 B 的析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15280179/