写 constructor/destructor 是个好习惯吗?
Is it good practice to write constructor/destructor?
我想知道总是写 constructor/destructor 是否是一个好习惯,即使我不使用它们。
class Foo
{
public:
Foo(){};
~Foo(){};
};
或者只有在我实际使用它们时才编写它们是更好的做法吗?
class Foo
{
public:
};
当默认成员函数足够时,用户定义特殊成员函数是个坏主意。
您将丢失默认生成的移动操作,请参阅
您的 class 将不再是微不足道的,导致分配和释放以及容纳您的 class 的容器效率大大降低。
默认定义可能会自动 noexcept
,但你丢失了它。
您的class不再是聚合,因此您不能使用聚合初始化。
如果你将析构函数设为虚拟,如你的问题所示,你也会失去标准布局。
我想知道总是写 constructor/destructor 是否是一个好习惯,即使我不使用它们。
class Foo
{
public:
Foo(){};
~Foo(){};
};
或者只有在我实际使用它们时才编写它们是更好的做法吗?
class Foo
{
public:
};
当默认成员函数足够时,用户定义特殊成员函数是个坏主意。
您将丢失默认生成的移动操作,请参阅
您的 class 将不再是微不足道的,导致分配和释放以及容纳您的 class 的容器效率大大降低。
默认定义可能会自动
noexcept
,但你丢失了它。您的class不再是聚合,因此您不能使用聚合初始化。
如果你将析构函数设为虚拟,如你的问题所示,你也会失去标准布局。