CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于虚析构函数

楼主qingfenglz()2005-11-02 13:37:07 在 C/C++ / C++ 语言 提问

课本上说:  
  在实现运行是的多态的时候,常把析构函数声明为虚函数,以便它能及时起到在对象消亡之前做一些清理工作的作用.  
  这句话怎么理解啊! 问题点数:50、回复次数:8Top

1 楼oo(为了名副其实,努力学习oo技术ing)回复于 2005-11-02 13:57:55 得分 15

析构函数声明为虚函数,当基类指针指向的是子类object时,delete基类指针能正确地调用到子类析构函数。  
  如果析构函数不声明为虚函数,则只调用到基类析构函数。Top

2 楼windking21(想玩玩WOW 真的那么难吗)回复于 2005-11-02 14:02:05 得分 15

虚析构函数的目的在于在使用delete运算符删除一个对象时,能保析构函数被正确地执行。因为设置虚析构函数后,可以采用动态联编方式选择析构函数。    
  当不说明基类的析构函数为虚函数时,delete隐含着对析构函数的调用   采用虚析构可以避免  
  Top

3 楼wangbingrex(王冰)回复于 2005-11-02 14:02:14 得分 0

不懂,能否详细点?  
   
   
   
  ====CSDN   小助手   V2.0   2005年10月16日发布====  
  CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件  
  界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx  
  下载:http://szlawbook.com/csdnv2/csdnv2.rar  
   
  为神六喝彩,向所有科技工作者致敬!  
  拒绝日货。Top

4 楼Maxwell(不可知)回复于 2005-11-02 14:21:54 得分 15

class   A  
  {  
  virtual   ~A();  
  }  
   
  class   B   :   public   A  
  {  
  virtual   ~B();  
  }  
   
  A*   pA   =   new   B;  
  delete   pA;  
   
  如果析构函数不是虚的,那delete   pA就不会调用~B了,这通常是错的。Top

5 楼mythma(~a za, a za,fighting!fighting!fighting!fighting!fi)回复于 2005-11-02 14:41:12 得分 5

推荐<<effective   C++>>和《more   effective   c++》Top

6 楼Rino(清风摇影)回复于 2005-11-02 15:19:11 得分 0

不用虚函数,只会析构基类,不会影响到派生类。Top

7 楼corrupt(喜欢 睡在床板下 的思考)回复于 2005-11-02 15:56:43 得分 0

这里   没人能说的清楚~~  
  推荐<<effective   C++>>     有详细说明~~Top

8 楼qiangsir(齐鲁剑侠)回复于 2005-11-30 11:05:12 得分 0

MARKTop

相关问题

  • 析构函数
  • 析构函数?
  • 虚析构函数和析构函数有什么区别呀?
  • C++中为什么析构函数可以是虚函数,而构造函数不可以是虚函数?
  • 请教虚析构函数问题
  • 虚析构函数有什么作用?
  • 构造函数和析构函数
  • 构造函数与析构函数
  • 构造函数析构函数问题
  • 抽象类的析构函数只能声明为虚函数吗?

关键词

  • 函数
  • csdn
  • 析构函数
  • 虚函数
  • 调用
  • 基类
  • pa
  • delete

得分解答快速导航

  • 帖主:qingfenglz
  • oo
  • windking21
  • Maxwell
  • mythma

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo