c++ 析构函数 是在什么时候执行
c++ 析构函数调用时间:
1、对象生命周期结束,被销毁时;
2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;
3、对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
扩展资料:
C++语言特点:
1、支持继承和重用
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
2、支持多态性
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。
参考资料来源:百度百科-C++
:笼统的说是销毁对象的时候进行调用。但是调用的时间不一定一样,有些时候当退出程序的时候,系统将收回分配的空间,这时就会调用析构函数;有些情况下,在程序进行过程中,使用delete
函数来销毁动态分配的对象,这时就会调用析构函数来释放内存空间。
主要作用就是释放资源,避免
内存泄漏
如果你的类里面只用到的基本类型,如int
char
double等,系统的默认析构函数其实什么都没有做
但如果你使用了其他的类如vector,string等,系统的默认析构函数就会调用这些类对象的析构函数
如果是自己写析构函数的话,如果你的类里面分配了系统资源,如new了内存空间,打开了文件等,那么在你的析构函数中就必须释放相应的内存空间和关闭相关的文件;这样系统就会自动调用你的析构函数释放资源,避免内存泄漏