C++面试题 sizeof相关
1、sizeof定义为:是一种运算符,查询对象或者类型的大小,对象最终也会转换成类型计算大小,一般经常使用的类型的大小很简单,此处不多说,见图
2、指针和数组:对于指针来说,无论是什么类型的,大小都为4,;而数组对象的大小则=对应的类型*数组长度。
3、类相关的大小:类和虚函数相结合的类的内存大小也是经常的面试笔试考点,下面一一列举。空类的士候眨塄大小是1:空类也可以被实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址。静态成员:静态数据成员放在全局数据成员中,它不占类实例大小,多个类实例只有一个实体。可以看作是一种特殊的全局变量。
4、类中含有virtual时(无论一个还是多个),内存中就会出现一个虚指针,而指针的大小为4,所以类的大小也是4;单一继承下,绣诅收蟮无论父类还是派生类中存在虚函数,派生类中大小都为4(只考虑虚函数,无其他成员),虚函数地址都存在于虚函数指针指向的虚函数表中。多重继承时,派生类会出现多个虚指针,此时大小就要具体计算了,如图继承两个含有虚函数的基类,派生类中存在两个虚指针,其大小为8。
5、虚继承:父类中存在虚函数,派生类进行虚继承,此时在派生类中出现两个虚指针,一个是指向类中虚函数表的指针,另一个是指向父类的指针,两个是不同的指针,所以类的大小应该是二者相加,即8.
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:90
阅读量:83
阅读量:62
阅读量:29
阅读量:23