gpt4 book ai didi

c++ - 编写构造函数/析构函数是好的做法吗?

转载 作者:可可西里 更新时间:2023-11-01 18:15:41 25 4
gpt4 key购买 nike

我想知道是否总是编写构造函数/析构函数是一个好习惯,即使我不使用它们也是如此。

class Foo
{
public:
Foo(){};
~Foo(){};
};

还是只有在我实际使用它们时才编写它们才是更好的做法?

class Foo
{
public:
};

最佳答案

当默认成员函数足够时,用户定义特殊成员函数是个坏主意。

  • 您将丢失默认生成的移动操作,参见 Does a default virtual destructor prevent compiler-generated move operations?

  • 您的类将不再是微不足道的,导致分配和释放以及容纳您的类的容器的效率大大降低。

  • 默认定义可能会自动为 noexcept,但您丢失了它。

  • 您的类不再是聚合,因此您不能使用聚合初始化。

  • 如果您将析构函数设为虚拟,如您的问题所示,您也会失去标准布局。

关于c++ - 编写构造函数/析构函数是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com