gpt4 book ai didi

c++ - 如果 B 使用类 A (c++),如何定义类 B 的析构函数?

转载 作者:行者123 更新时间:2023-11-30 00:36:44 25 4
gpt4 key购买 nike

我有一个类 AA 有自己的析构函数。

我使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com