如何为类创建析构函数

时间:2015-02-22 23:36:45

标签: c++ class destructor

我看到很多类的析构函数都是空的。但是,并非所有人都这样。有什么时候我们需要在析构函数中写一些内容吗?如果类中的所有变量都是静态的,那么我们总是只需要一个空的析构函数吗?

2 个答案:

答案 0 :(得分:1)

当需要在项目被销毁时执行某些操作时,您需要一个析构函数。对于析构函数,您可能不需要做任何标准的事情。

您可能选择使用析构函数的内容:

  1. 终止一些正在运行的线程。
  2. 向用户提供有意义的消息。
  3. 打印一些重要的文件,在删除项目后会丢失。
  4. 使用delete释放内存(使用new运算符分配的内存)。
  5. 关闭互联网连接套接字。
  6. 虽然destructor是为每个项目执行工作的自动方式,但您可以选择在程序主体中手动执行这些任务"(不推荐)或者通过使用特定的方法。

答案 1 :(得分:0)

如果您没有定义任何构造函数,那么c ++将为您创建一个空的默认构造函数。

所以答案是你可以自由决定是否定义一个空构造函数。在这种情况下,它没有任何区别。

如果类的所有变量都是静态的...它在很大程度上取决于情况,但通常作为经验法则,静态类不使用析构函数,因为它们没有被实例化为" normal"类。

有时候你确实需要在类静态中拥有所有变量。 这种情况甚至有pattern。但这更像是一个例外,而不是一个规则。