假设我们有一个(玩具)C++类,如下所示:
class Foo {
public:
Foo();
private:
int t;
};
Run Code Online (Sandbox Code Playgroud)
由于没有定义析构函数,因此C++编译器应该自动为类创建一个析构函数Foo
.如果析构函数不需要清理任何动态分配的内存(也就是说,我们可以合理地依赖编译器给我们的析构函数),那么将定义一个空的析构函数,即.
Foo::~Foo() { }
Run Code Online (Sandbox Code Playgroud)
做与编译器生成的一样的事情?那个空构造函数怎么样 - 也就是说,Foo::Foo() { }
?
如果存在差异,它们存在于何处?如果没有,一种方法优于另一种方法吗?