主函数:

 #include <iostream>
#include "test.h"
#include "testfuc.h"
using namespace std; int main(void)
{
a *p=new b(); p->fuc(); cout<<"指针p占用空间"<<sizeof(p)<<endl;
cout<<"类占用空间"<<sizeof(a)<<endl; delete p; return ;
}
test.h
 #ifndef TEST_H
#define TEST_H class a
{
public:
a();
~a();
void virtual fuc();
}; class b:public a
{
public:
b();
~b();
void fuc();
}; #endif
testfuc.h
 #ifndef testfuc_h
#define testfuc_h #include <iostream>
using namespace std; a::a()
{
cout<<"a的构造函数"<<endl;
} a::~a()
{
cout<<"a的析构函数"<<endl;
} b::b()
{
cout<<"b的构造函数"<<endl;
}
b::~b()
{
cout<<"b的析构函数"<<endl;
} void a::fuc()
{
cout<<"a的函数"<<endl;
} void b::fuc()
{
cout<<"b的函数"<<endl;
}
#endif

运行结果:

a的构造函数

b的构造函数

b的函数

指针p占用空间8

类占用空间8   //每个虚函数的类都要有8字节(64位系统)指针指向自己的虚函数表

a的析构函数

a *p=new b();
改为
b *p=new b();

运行结果:

a的构造函数

b的构造函数

b的函数

指针p占用空间8

类占用空间8

b的析构函数

a的析构函数

将virtual去掉 a *p=new b();

运行结果:

a的构造函数

b的构造函数

a的函数

指针p占用空间8

类占用空间1

a的析构函数

将virtual去掉 b *p=new b();

运行结果:

a的构造函数

b的构造函数

b的函数

指针p占用空间8

类占用空间1

b的析构函数

a的析构函数

												

最新文章

  1. ie6 z-index不起作用的解决方法
  2. 查看struct或class的内存布局
  3. 发起post、get请求
  4. Appium移动自动化测试之Eclipse
  5. python课程第一周重点记录
  6. Elmah 日志记录组件
  7. Codeforces Round #370 (Div. 2) D. Memory and Scores DP
  8. 从零开始学Linux[一]:基本命令:系统信息、目录、文件、文件编辑
  9. jQuery corner 圆角插件
  10. Jquery基础:append、prepend、after、before、appendTo的区别
  11. linux 一些遇到的问题
  12. 删除数据表和清空数据表的内容(保存表结构)的SHELL脚本
  13. css--左右visibility建立 “collapse”值问题
  14. Android系统剪切板
  15. Polly 重试策略
  16. dp练习--
  17. lwIP 2.0.3 移植笔记(基于 STM32 + μC/OS-II)
  18. oracle中主键自增
  19. 1. 元信息:Meta类 2. 基于对象查询的sql优化 3. 自定义:Group_Concat() 4. ajax前后台交互
  20. 如何将SqlServer中表结构以及表数据全部导出

热门文章

  1. Proteus中MATRIX-8X8 LED灯的连接
  2. Linux 下搭建jsp服务器(配置jsp开发环境)
  3. markdown 自定义一个锚点
  4. php和node高并发 大数据量怎么处理
  5. 2015 QQ最新登录算法
  6. ueditor1.4.3 在IE8下的 BUG
  7. Redis集合相关命令
  8. 本地yum库的搭建
  9. PHP中date函数月和日带0问题
  10. HDU 1248 寒冰王座