C++ sizeof
class A{
    int a;
    char c;
    char b;
};
class B{
    char c;
    int a;
    char b;
};
int main(int argc, char* argv[])
{
    cout<<sizeof(A)<<" "<<sizeof(B)<<endl;
    return ;
}
输出结果为8,12
class A1{};
class A2{};
class A3{};
class A4{int a;};
class A:A1,A2,A3{};
class B:A4,A2,A3{};
class C:A2,A4,A3{};
int main(int argc, char* argv[])
{
    cout<<sizeof(A)<<" "<<sizeof(B)<<" "<<sizeof(C)<<endl;
    return ;
}
输出2,8,4 好像是由于VS造成的
参考 http://blog.csdn.net/candyliuxj/article/details/6307814
参考http://zhidao.baidu.com/link?url=3EoEqmFhpRz8GykcmiH-UH2EXnZKyBtD_UatV6s86zW6tkBJKLfelkZNFDVjytXRYRPHRh2xqIUBEpZIhnRd6K&autorefresh=1382066735990
空的父类不需要分配空间,虚函数需要一个虚函数表,但是表的地址是共用的(对不同的虚函数)
C++ sizeof的更多相关文章
- 聊聊 C 语言中的 sizeof 运算
		聊聊 sizeof 运算 在这两次的课上,同学们已经学到了数组了.下面几节课,应该就会学习到指针.这个速度的确是很快的. 对于同学们来说,暂时应该也有些概念理解起来可能会比较的吃力. 先说一个概念叫内 ... 
- c/c++中关于sizeof、strlen的使用说明
		sizeof: 一般指类型.变量等占用的内存大小(由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小) strlen: c字符串的长度(参数必须是字符型指针 char*,当数组名作 ... 
- sizeof(转载)
		原文地址:http://blog.sina.com.cn/s/blog_5da08c340100bmwu.html 转载至:http://www.cnblogs.com/wangkangluo1/ar ... 
- C语言中的sizeof()
		sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着"辛苦我一个,幸福千万人"的伟大思想,我决定将其尽可能详细的总结一下. 但当我总结的时候才发现,这个 ... 
- 你必须知道的指针基础-4.sizeof计算数组长度与strcpy的安全性问题
		一.使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: ,,,,,}; int ... 
- c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)
		一. sizeof计算结构体 注:本机机器字长为64位 1.最普通的类和普通的继承 #include<iostream> using namespace std; class Parent ... 
- c语言 sizeof理解
		1.基本数据类型 char :1 short:2 int 4 long 4 long long :8 float:4 double :8字节. 2.数组:对应的基本数 ... 
- sizeof与strlen的区别
		1 sizeof是操作符,而strlen是库函数: 2 sizeof的参数可以为任意变量或类型,而strlen必须以char*做参数,且字符串必须以‘/0’结尾: 3 数组名用作sizeof参数时不会 ... 
- sizeof
		一.sizeof使用的场合: 1.sizeof操作符的一个主要用途是与存储分配和I/O系统那样的例程进行通信.例如: void* malloc(size_t size); size_t fread(v ... 
- strlen()和sizeof()求数组长度
		在字符常量和字符串常量的博文里有提: 求字符串数组的长度 标准库函数strlen(s)可以返回字符串s的长度,在头文件<string.h>里. strlen(s)的判断长度的依据是(s[i ... 
随机推荐
- 在eclipse中将java导出为可执行文件.
			Ref: http://java.chinaitlab.com/Eclipse/812775.html and http://www.javavids.com/video/how-to-create- ... 
- Spring通过SchedulerFactoryBean实现调度任务的配置
			http://blog.csdn.net/hu_shengyang/article/details/19815201(里面是配置) 介绍SchedulerFactoryBean http://blog ... 
- [转]Delphi I/O Errors
			The following are the Windows API (and former DOS) IO errors, which are also the IO errors often ret ... 
- 利用CMake自己创建OpenCV静态链接库
			1.准备工作: 1)完成Visual Studio2012安装: 2)下载并解压CMake3.5.0: 3)下载并解压OpenCV2.4.12: 4)下载并解压TBB44_20160128oss. 2 ... 
- js 去除字符串开头或者前几个字符。slice  也可以用于截取某一部分
			摘草自w3 slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数,那么它规 ... 
- dedecms织梦二级菜单的实现方法
			首先,复制代码: 程序代码 {dede:channelartlist typeid='top' cacheid='channelsonlist'} {dede:channel type='son' n ... 
- YII 验证邮箱和QQ号码
			//验证邮箱非空,和邮箱格式 //验证邮箱非空,和邮箱格式 array("email","e ... 
- ubuntu更新源
			源一定要找对应的版本 14.04对应 trusty deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multive ... 
- Ubuntu软件包管理命令全面集锦
			说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法. 一.U ... 
- java高精度数组
			POJ1205 递推公式为a[i] = 3*a[i-1] - a[i-2], a[1] = 1,a[2] = 3 , i 最高为100; 搞懂了使用BigInteger开数组. import java ... 
