C++中对象大小的问题
来源:互联网 发布:广州php培训 编辑:程序博客网 时间:2024/05/22 17:49
总结:
1) 类的所有对象都指向一个虚函数表, 也就是说虚函数表是由类来维护的, 在编译的时候就已经确定了
2) 对象的大小,
2.1) 当类中没有虚函数时,并没有一个指针指向虚函数表, 只有当有虚函数的时候才有指针。
2.2) 当类中有静态变量时, 对象的大小不会因为静态变量的而改变, 静态变量并不在对象中
2.3) 对象中只会有非静态的成员变量, 包括本身的和父类的
2.4)内存对齐的问题
例子:
class test{
};
class Base1{
public:
Base1(){};
~Base1(){};
static int test1;
int test2;
virtual void testfunc2(){};
};
class Base2{
public:
static int test1;
int test2;
virtual void testfunc2(){};
};
class Derive1:public Base1{
public:
int test;
virtual void s() {};
};
class multiDerive: public Base1, Base2{
};
int _tmain(int argc, _TCHAR* argv[])
{
test a;
Base1 obj;
Derive1 der;
multiDerive multiobj;
std::cout<< sizeof(a) <<std::endl;
std::cout<< sizeof(obj) <<std::endl;
std::cout<< sizeof(der) <<std::endl;
std::cout<< sizeof(multiobj) <<std::endl;
}
输出:(64位环境)
1
16
24
32 //多重继承
虚多重继承:
- C++中对象大小的问题
- c语言中大小端的问题
- string对象大小的问题
- 关于C中结构体的大小问题(sizeof)
- C语言中关于结构体大小的问题
- C++中对象的大小
- C++中对象的大小
- Java中对象的大小
- C++,struct大小的问题
- 类对象大小的 sizeof 计算问题
- C++中 没有数据成员的类的对象所占的内存空间大小问题
- 准确计算Java中对象的大小
- 【C语言】大小端的问题
- [C++] 关于FD_SETSIZE大小的问题
- C语言UNION结构大小的问题
- C语言的指针大小问题
- C++/CLI中栈对象的设计问题
- C++/CLI中栈对象的设计问题
- QC 新建缺陷,如何定制缺陷描述模板
- C#中StreamReader读取中文出现乱码
- MySQL密码验证实现原理
- Android手机硬件信息Build
- Dom4j操作文档及使用案例
- C++中对象大小的问题
- tomcate + jndi 详细配置
- 自定义控件属性的一些特性
- QTP的基本使用方法(六步)
- Digester fails
- oSIP协议栈(及eXoSIP,Ortp等)使用入门
- 二极管基础知识 二
- dBSPL、dBu、dBV、dBm、dBVU、dBFS等等和分贝有关的名词解析
- 博客,我又来了 给力呀。。。