“空类”也会占用一个字节:编译器给对象安排一个唯一地址。
那些规则太烦人。变量名和typedef还是不冲突的为好,如果有冲突,类内部的就加上类名字以区别。
静态成员变量放在数据段。
成员变量的布局,标准没有规定,感觉没什么需要特别注意的。
通过对象和指针访问成员变量的效率是一样的,忽略虚拟继承吧。。。
基类在子类中保持“原样性”。这个有点意思,继承可能导致子类占用更多的空间。这样看,继承有时候还不如包含呢。
![](https://img-blog.csdnimg.cn/img_convert/656115838d6d2df08953872a2c3b1183.png)
![](https://img-blog.csdnimg.cn/img_convert/100e308f82a995f2c821e648b3eec836.png)
![](https://img-blog.csdnimg.cn/img_convert/100e308f82a995f2c821e648b3eec836.png)
空间点的定义,Point2D和Point3D。如果定义成继承关系,确实会引入不少额外开销,如vtbl&&vptr。内存大小重要时,还不如分开定义好。
不看多重继承和虚拟继承。
指向成员的指针,很少使用了。。