c++对象模型
Posted manziluo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++对象模型相关的知识,希望对你有一定的参考价值。
1.结构体成员在内存中的排列顺序和声明相同,而类中不同访问节(private,protected.. 父类实例与子类实例等)的内存顺序没有强制规定。
2.class和struct 因为空间顺序的原因,如果要一起使用,需要把strcut组合到class里面而不是派生和继承。
3.
4.指针类型只是告诉编译器怎样解释一段内存中的内容,在内存表现上没有区别。这也是void*指针不能操作对象的原因,而void*强制转换的也是在编译阶段起作用。
5.强制转换是编译器做的,而dynamic_cast是运行时进行的(开销较前者大)
6.指针和引用之所以支持多态,是因为它们并不引发内存中任何与类型有关的内存委托操作,会受到改变的只是它们所指向内存”大小和内容解释方式“而已。
8.有用的默认构造函数合成以及已有构造函数扩展,将发生产在
a.有类成员
b.为派生类
c.具有虚函数
4.虚继承
以上是关于c++对象模型的主要内容,如果未能解决你的问题,请参考以下文章