Chinaunix首页 | 论坛 | 博客
  • 博客访问: 770929
  • 博文数量: 95
  • 博客积分: 6011
  • 博客等级: 准将
  • 技术积分: 1342
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-12 16:58
文章分类

全部博文(95)

文章存档

2009年(44)

2008年(51)

我的朋友

分类: C/C++

2008-09-03 20:53:56

(二)独立类且含有虚函数
 

1.定义与实验

定义一个无成员变量的类C040,内含一个虚函数。

struct C040
{
    virtual void foo() {}
};
运行如下代码打印它的大小及对象中的内容。
PRINT_SIZE_DETAIL(C040)
结果为:
The size of C040 is 4
The detail of C040 is 40 b4 45 00

2. 对象布局

C040:

 

3. 相关说明

  果然它的大小为4字节,即含有一个指针,指针指向的地址为0x0045b440。当一个类中有虚函数时,编译器会为该类产生一个虚函数表,并在它的每一个对象中插入一个指向该虚函数表的指针,通常这个指针是插在对象的起始位置。所谓的虚函数表实际就是一个指针数组,其中的指针指向真正的函数起始地址。
 
阅读(911) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~