#include <iostream>
using namespace std; class Base
{
public:
Base()
{
cout<<"Base"<<endl;
};
~Base()
{
cout<<"~Base"<<endl;
};
public:
virtual void fun1(){cout<<"from base fun"<<endl; };
};class derived: public Base
{
public:
derived()
{
cout<<"derived"<<endl;
};
~derived()
{
cout<<"~derived"<<endl;
};
public:
virtual void fun1(){cout<<"from derived fun"<<endl;};};int main()
{
{
Base* pDerived = new derived();
pDerived->fun1();
delete pDerived;
}
system("pause");
}
-----------------------------
运行结果:
Base
derived
from derived fun
~Base我的问题是为什么没有调用~derived()??这样做是不是造成了内存的泄漏??该怎么正确调用?
using namespace std; class Base
{
public:
Base()
{
cout<<"Base"<<endl;
};
~Base()
{
cout<<"~Base"<<endl;
};
public:
virtual void fun1(){cout<<"from base fun"<<endl; };
};class derived: public Base
{
public:
derived()
{
cout<<"derived"<<endl;
};
~derived()
{
cout<<"~derived"<<endl;
};
public:
virtual void fun1(){cout<<"from derived fun"<<endl;};};int main()
{
{
Base* pDerived = new derived();
pDerived->fun1();
delete pDerived;
}
system("pause");
}
-----------------------------
运行结果:
Base
derived
from derived fun
~Base我的问题是为什么没有调用~derived()??这样做是不是造成了内存的泄漏??该怎么正确调用?
解决方案 »
- 如何让editbox实现修改快捷键的效果
- 小问题
- 怎么样才能,单击Tab Control卡片的时候,窗口标题栏变蓝色呢?
- 从来不用assert的飘过···
- 请教一个高难度问题,我主动POST一个HTTP连接过去,服务端返回的是XML格式,不是HTML,怎样通过VC++获取XML文件内容啊??急急!
- 求助:获得加载了指定dll的所有进程的方法
- VC6下的atof对应的宽字符函数是什么?
- =====在vc中导出dll的函数一定要用到__declspec( dllimport )吗?=====
- ★★我想编一个电压测量系统,用VC如何实现呀?请大家给些主意吧!!★★
- 哪位高手给点意见现实视频的动态直方图?
- 求InstallShield6.22中文包?
- 现在学Win32 SDK编程是不是很落后?
{
{
derived* pDerived = new derived(); ///试试
pDerived->fun1();
delete pDerived;
}
system("pause");
}
~Base() = > virtual ~Base()
建议看 深度探索c++对象模型 和 高质量C、C++编程指南
虚继承。
=============================================================================
虚继承? LichengYue弄错了吧, 虚继承和这个是没有关系的啊. 虚函数 <> 虚继承啊, 不能误导哦.