首页 > 代码库 > c++对象模型

c++对象模型

1.结构体成员在内存中的排列顺序和声明相同,而类中不同访问节(private,protected.. 父类实例与子类实例等)的内存顺序没有强制规定。
 
2.class和struct 因为空间顺序的原因,如果要一起使用,需要把strcut组合到class里面而不是派生和继承。
3.
技术分享

 

技术分享
 
4.指针类型只是告诉编译器怎样解释一段内存中的内容,在内存表现上没有区别。这也是void*指针不能操作对象的原因,而void*强制转换的也是在编译阶段起作用。
 
 
5.强制转换是编译器做的,而dynamic_cast是运行时进行的(开销较前者大)
 
6.指针和引用之所以支持多态,是因为它们并不引发内存中任何与类型有关的内存委托操作,会受到改变的只是它们所指向内存”大小和内容解释方式“而已。
 
 
7.被合成的构造函数是根据编译器的需要而不是程序员的需要。

8.有用的默认构造函数合成以及已有构造函数扩展,将发生产在
   a.有类成员
   b.为派生类
   c.具有虚函数
   4.虚继承

c++对象模型