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