c ++ - 应该在无指针类中声明/实现破坏吗?

EOG*_*EOG 4 c++ implementation

是否应该在无指针类中声明/实现破坏?拥有/不拥有它有什么好处吗?

我的男人是:

class Point
{
public: 
    int X, Y;
    Point(int x, int y);
    //~Point(void);       //should I uncoment it and implement empty destructor ?
}
Run Code Online (Sandbox Code Playgroud)

Alo*_*ave 5

是否应该在无指针类中声明/实现破坏?

不需要[条件适用].编译器会为你生成一个.
只有在想要执行特定的操作时才应该提供一个,而编译器则不会.
例如:

  • 资源管理(内存管理,文件处理),
  • 日志记录,
  • 关闭网络连接,
  • 简而言之,每次销毁对象时都需要执行自定义功能

通常,拇指规则是:
"如果您需要提供复制构造函数或复制赋值运算符,那么您很可能还需要提供自己的析构函数."
通俗地说,这条规则被称为三规则.


[条件适用] 如果您的类要作为继承的基类,并且您的实现将需要调用delete指向派生类对象的Base类指针,那么您需要提供析构函数并将其标记为virtual在Base类中,失败这样做会导致未定义的行为.


拥有/不拥有它有什么好处吗?

没有,因为编译器也这样做,所以不需要进行额外的输入.