纯虚析构函数的作用用是什么

析构函数的作用 什么是析构函数
字体:[ ] 类型:转载 时间:
析构函数的作用是当对象生命期结束后,收回对象占用的资源,析构函数的特点是: 1、析构函数名是在类名前加以符号“~”。 2、析构函数没有参数、返回类型和修饰符。 3、一个类中至多有一个析构函数,如果程序员没有定义析构函数,那么系统会自动地加入一个析构函数。 4、不能显式地调用析构函数,而是由系统自动调用。 定义析构函数格式为: ~类名() {...} &&&&&&&由于c#得到自动内存管理的支持,当对象生命期结束后,系统能够自动回收那些对象应该释放的资源等,所以一般不需要程序员的关心,对于一般的对象,程序中不需要定义析构函数。 阿会楠:《Visual&c#.net程序设计教程》笔记。&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具百度题库旨在为考生提供高效的智能备考服务,全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效服务,助您不断前行!
京ICP证号&&
京网文[3号&&
Copyright (C) 2017 Baidu虚析构函数_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
虚析构函数
虚析构函数是为了解决的指向派生类对象,并用基类的指针删除派生类对象。如果某个类不包含,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个,使得对象的体积翻倍,还有可能降低其可移植性。所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包含至少一个虚函数的时候才去声明虚析构函数。是准备被用做基类的,基类必须要有一个虚析构函数,会产生抽象类,所以方法很简单:在想要成为抽象类的类里声明一个纯虚析构函数。
虚析构函数虚析构函数
虚析构函数是为了解决这样的一个问题:的指向派生类对象,并用基类的指针删除派生类对象。
如果某个类不包含,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个,使得对象的体积翻倍,还有可能降低其可移植性。
所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包含至少一个虚函数的时候才去声明虚析构函数。
是准备被用做基类的,基类必须要有一个虚析构函数,会产生抽象类,所以方法很简单:在想要成为抽象类的类里声明一个纯虚析构函数。
虚析构函数虚析构函数举例
这里是一个例子:
class awov { // awov = &abstract w/o
// virtuals&
virtual ~awov() = 0; // 声明一个纯虚析构函数
这个类有一个,所以它是抽象的,而且它有一个虚析构函数,所以不会产生析构函数问题。但这里还有一件事:必须提供纯虚析构函数的定义:
awov::~awov() {} // 纯虚析构函数的定义
这个定义是必需的,因为虚析构函数工作的方式是:最底层的派生类的析构函数最先被调用,然后各个的析构函数被调用。这就是说,即使是,也要产生对~awov的调用,所以要保证为它提供。如果不这么做,就会检测出来,最后还是得回去把它添上。
注意:如果声明虚析构函数为inline,将会避免调用它们时产生的开销,但编译器还是必然会在什么地方产生一个此函数的拷贝。}

我要回帖

更多关于 c 析构函数作用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信