c++实例研究

从0开始

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  104 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
未声明virtual:
#include <iostream>
#include 
<cstdlib>
using namespace std;

class base
{
    
public:
        
~base(){cout<<"base destr"<<endl;}
}
;

class derived :public base
{
    
public:
        
~derived(){cout<<"derived destr"<<endl;}
}
;

int main()
{
    
base *pb = new derived();
    delete pb;
    system(
"PAUSE");
    
return 0;
}

声明virtual:
#include <iostream>
#include 
<cstdlib>
using namespace std;

class base
{
    
public:
        
virtual ~base(){cout<<"base destr"<<endl;}
}
;

class derived :public base
{
    
public:
        
virtual ~derived(){cout<<"derived destr"<<endl;}
        
        
//~derived(){cout<<"derived destr"<<endl;} //不加virtual也可以,默认会继承 
}
;

int main()
{
    
base *pb = new derived();
    delete pb;
    system(
"PAUSE");
    
return 0;
}

posted on 2010-10-25 09:59 elprup 阅读(319) 评论(0)  编辑 收藏 引用 所属分类: c++面试题

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理