C++里的虚函数表
2013-11-18 20:42
399 查看
我们都知道为类定义越多的属性会增大类对象的大小,在使用对象的时候也就会占用越多的内存。
在C++里,虚函数也同样会占用内存,因为类会维护一个指向虚函数表(VTable)的指针(pVTable),该指针占4个字节,用来保存虚函数表的地址。
如下图所示:
直接看代码:
#include "stdafx.h"
class Test
{
public:
int Age;
int ID;
virtual void Get1()
{
}
virtual void Get2()
{
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Test a;
printf("%d\n",sizeof(a));
return 0;
}
运行结果是 : 4 + 4 + 4 = 12 字节。
在C++里,虚函数也同样会占用内存,因为类会维护一个指向虚函数表(VTable)的指针(pVTable),该指针占4个字节,用来保存虚函数表的地址。
如下图所示:
直接看代码:
#include "stdafx.h"
class Test
{
public:
int Age;
int ID;
virtual void Get1()
{
}
virtual void Get2()
{
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Test a;
printf("%d\n",sizeof(a));
return 0;
}
运行结果是 : 4 + 4 + 4 = 12 字节。
相关文章推荐
- C语言之树
- C语言之队列
- VC++ DEGUG/RELEASE两选项主要有哪些区别 .(转)
- c++实现双链表
- c语言之栈
- C和C++中static关键字的区别
- c++培训周总结2
- C++程序中获取不带文件路径和后缀的文件名
- C语言中scanf与分隔符(空格回车Tab)
- C++特性笔记
- C语言实现的矩阵库meschach
- C++各大有名库的介绍(作者 armman)
- 1. Rccp简明教程(关于R与C++的混合使用方法)
- 简单的读取文件的每行内容
- 【C++ Primer】标准IO库
- 【C++ Primer】函数
- C++.Homework. Operator overloading.02
- c++ 跨平台封装socket
- C++:#pragma once与 #ifndef的区别
- c++ 4种类型转换