摘要: 一个类能够实例化,编译器就需给它分配内存空间,来指示类实例的地址。这里编译器默认分配了一个字节(如:char,编译器相关),以便标记可能初始化的类实例,同时使空类占用的空间也最少(即1字节)。 对于结构体和空类大小是1这个问题,首先这是一个C++问题,在C语言下空结构体大小为0(当然这是编译器相关的 阅读全文
posted @ 2017-01-13 23:04 柳下_MBX 阅读(380) 评论(0) 推荐(0) 编辑
摘要: template<class Type> class不能为struct的原因是 template并不打算与c进行兼容 c++中处于同一个access section的数据成员在内存中的格局是按照声明顺序出现在内存中的,但是不同的access section就不一定了 c中的struct只是一个结构体 阅读全文
posted @ 2017-01-13 22:35 柳下_MBX 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 单一虚函数继承 class A{public: virtual int foo( ) { return val ; } virtual int funA( ) {}private: int val ; char bit1 ;} ; class B : public A{public: virtual 阅读全文
posted @ 2017-01-13 21:49 柳下_MBX 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 对一个结构体进行不断的封装后可以形成一个c++类,为此需要添加很多函数成员之类的代码,为此显示c++比c语言显得庞大并且迟缓,但是事实并不是这些 c++在布局和时间上的额外承担主要是由virtual引起的 下面简述c++对象模型 数据成员包括静态成员和非静态成员, 函数成员包括静态,非静态,虚函数 阅读全文
posted @ 2017-01-13 20:26 柳下_MBX 阅读(865) 评论(0) 推荐(0) 编辑