1

这可能是一个简单的问题,但是:如果程序使用删除运算符,是否不需要析构函数?这是在“C++”中。

4

1 回答 1

3

删除运算符不能替代析构函数...它将导致调用析构函数。

如果您自己没有定义一个析构函数,编译器将提供一个默认析构函数。默认析构函数是否足够,或者您是否需要提供自己的析构函数,与您是否显式使用删除运算符或仅允许对象超出范围是完全不同的问题。

编辑:既然迈克尔多根提到它,我不妨添加这个:

三法则

三规则(也称为三巨头或三巨头)是 C++ 中的一条经验法则,它声称如果一个类定义了以下之一,它可能应该明确定义所有三个:

destructor
copy constructor
copy assignment operator
于 2013-06-17T22:24:20.093 回答