如果,在继承中出现使用到,A被B类虚继承成,B由C继承。
那么这个时候就类似于菱形继承的半边。
A
B C
D
也就是类似上面的A ->C->D的路径,由于C继承A采用的是虚继承,那么编译器会才用菱形继承的内存布置方式,那么这里就必须满足下列的条件之一。
1:A拥有默认构造函数。
2:D类的构造函数中调用了A类的构造函数。
如果,在继承中出现使用到,A被B类虚继承成,B由C继承。
那么这个时候就类似于菱形继承的半边。
A
B C
D
也就是类似上面的A ->C->D的路径,由于C继承A采用的是虚继承,那么编译器会才用菱形继承的内存布置方式,那么这里就必须满足下列的条件之一。
1:A拥有默认构造函数。
2:D类的构造函数中调用了A类的构造函数。