C++
Cober_9989
这个作者很懒,什么都没留下…
展开
-
C++ 虚函数表解析
虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重转载 2017-05-19 11:12:02 · 209 阅读 · 0 评论 -
C++类的大小——sizeof(class)
第一:空类的大小class CBase{};运行coutsizeof(CBase)=1;为什么空的什么都没有是1呢?先了解一个概念:类的实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址。同样空类也会被实例化(别拿豆包不当干粮,空类也是类啊),所以编译器会给空类隐含的添加一个字节,这样空类实例化之后就有了独一无二的地址转载 2017-05-19 11:16:57 · 5608 阅读 · 1 评论 -
sizeof struct class 字节对齐
突然想到sizeof的计算,于是写程序计算了一下,环境是32位的Ubuntu 12.04,编译器为g++。计算sizeof的规则大致如下:空的class和struct大小为1. 如果在类和struct中有成员变量的话,就不考虑这个为空时的1.如果class和struct中有成员变量,则计算方式是将成员变量对齐之后累加。各成员变量存放的 起始地址相对于起始地址的偏移量必须为该变量的类转载 2017-05-19 11:23:41 · 292 阅读 · 0 评论