总结一个下c++虚函数的内存结构问题
1 |
|
//A1: 输出A print1的原因是在class A的构造方法里面,对象b的构造方法内部还没有执行, 所以对象b还没有初始化也就没有虚函数表,在A的构造方法里面this指针就是A类型的, 所以是调用A的print1
//A2
1 |
|
所以 sizeof(D) = 4 + 8 + 4 (C的大小为8是因为内存还要对其)
总结一个下c++虚函数的内存结构问题
1 |
|
//A1: 输出A print1的原因是在class A的构造方法里面,对象b的构造方法内部还没有执行, 所以对象b还没有初始化也就没有虚函数表,在A的构造方法里面this指针就是A类型的, 所以是调用A的print1
//A2
1 |
|
所以 sizeof(D) = 4 + 8 + 4 (C的大小为8是因为内存还要对其)