【发布时间】:2018-12-01 06:20:57
【问题描述】:
我的 c++ 书说,“当对象被销毁时会自动调用析构函数”。那么,如果我不打算在其中包含任何类似于以下示例的代码,那么创建一个是好还是坏的做法?
我书中的例子是:
Demo::~Demo()
{
cout << "Now the destructor is running.\n";
}
【问题讨论】:
-
如果你不写一个,编译器会自动给你一个空的。如果您需要(或想要)做一些特别的事情,那就写一个。如果您需要编写析构函数,请注意rule of 3/5/0,因为您可能还需要编写其他构造函数和赋值运算符。
-
编译器会自动为你生成析构函数。如果/当生成的不符合您的要求时,您应该编写自己的。
-
@SidS,你能举个例子吗?
-
@Sid S 我想说这样的说法需要一个证明的例子。
-
@SidS 你能提供一个关于godbolt.org 的例子吗?
标签: c++ destructor explicit-destructor-call