大家好,今天给大家分享析构函数什么时候调用,一起来看看吧。

什么是析构函数?

析构函数是一个破坏或删除对象的成员函数。

句法:

~constructor-name();

析构函数的属性:

销毁对象时,将自动调用析构函数。

不能将其声明为static或const。

析构函数没有参数。

它没有返回类型,甚至没有空。

具有析构函数的类的对象不能成为联合的成员。

析构函数应在该类的公共部分中声明。

程序员无法访问析构函数的地址。

什么时候调用析构函数?

当对象超出范围时,将自动调用析构函数:

(1)函数结束

(2)程序结束

(3)包含局部变量的块结束

(4)调用删除运算符

析构函数与普通成员函数有何不同?

析构函数与以波浪号(〜)开头的类具有相同的名称。 析构函数不接受任何参数,也不返回任何值

class String {private:char* s;int size;public:String(char*); // constructor~String(); // destructor};String::String(char* c){size = strlen(c);s = new char[size 1];strcpy(s, c);}String::~String() { delete[] s; }

一个类中可以有多个析构函数吗?

不可以,一个类中只有一个析构函数,其类名前面带有〜,没有参数,也没有返回类型。

什么时候需要编写用户定义的析构函数?

如果我们不在类中编写自己的析构函数,则编译器会为我们创建一个默认的析构函数。除非我们在类中动态分配了内存或指针,否则默认析构函数可以正常工作。当一个类包含指向在该类中分配的内存的指针时,我们应该编写一个析构函数以释放该类实例之前的内存。必须这样做以避免内存泄漏。

析构函数可以是虚拟的吗?

是的,实际上,当我们具有虚函数时,在基类中使析构函数虚拟是一个好主意。

以上就是今天的全部内容了。每日分享小知识,希望对你有帮助~

另外如果你想更好地提升你的编程能力,学好C语言C 编程!弯道超车,快人一步!笔者这里或许可以帮到你~

编程学习书籍分享:

编程学习视频分享:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

点击下方【了解更多】获取更多免费学习资料帮助你学习成长哦~

以上就是析构函数什么时候调用的内容分享,希望对大家有用。