c++ - 删除运算符,它们等同于 C++ 中的析构函数

标签 c++ destructor delete-operator

<分区>

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

最佳答案

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

如果您没有自己定义,编译器将提供一个默认的析构函数。无论 默认的析构函数就足够了,或者您是否需要提供自己的析构函数,是一个 与您是否明确使用 delete 运算符完全分开的问题,或者 仅允许对象超出范围。

编辑:既然 Michael Dorgan 提到了它,我不妨补充一下:

Rule of Three

The rule of three (also known as the Law of The Big Three or The Big Three) is a rule of thumb in C++ that claims that if a class defines one of the following it should probably explicitly define all three:

destructor
copy constructor
copy assignment operator

关于c++ - 删除运算符,它们等同于 C++ 中的析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17157797/

相关文章:

java - 如何清理 Java 中打开的进程?

c++ - 为什么,真的,删除不完整的类型是未定义的行为?

c++ - 从二叉搜索树中删除只有一个子节点的节点

c++ - 替换 C++ 中的 delete,错误信息

c++ - 按 STL - C++ 中的成绩对学生列表进行排序?

c++ - Excel C API : Is there an Excel v4. 0 用于测试工作表是否被隐藏的宏函数?

c++ - 应用程序无法正确启动 (0xc000007b) Visual Studio C++

java - JNI线程模型?

c++ - 单例:析构函数怎么会被调用两次?

java - Java 中是否有等效的 C++ 析构函数?