关于C++构造函数与析构函数的一些问题

关于C++构造函数的一些问题

关键字explicit

C++构造函数explicit关键字.

析构函数

对象生命期结束前应该完成对象资源的清理,这个工作由析构函数完成
析构函数其实也是一种特殊的构造函数

在以下情况, 析构函数将被自动调用:

  • 如果定义一个全局对象,则当程序离开其作用域时,该全局对象的析构函数将被自动调用;
  • 如果一个对象被定义在一个函数体内,则当这函数结束时, 该对象的析构函数将被自动调用;
  • 若一个对象是使用new运算符动态创建,在使用delete运算符释放存储空间时, delete运算符将自动调用该对象的析构函数。

一般来讲,编译器会自动生成析构函数
或者可以显式的说明

~C() = default
//让编译器生成析构函数
~C() = delete
//让编译器不自动生成析构函数

参考:
ymj老师的课件

猜你喜欢

转载自blog.csdn.net/Dueser/article/details/108965364