解决菱形继承的问题
示例代码
#include <iostream>
class A {
public:
int value;
A() : value(10) {}
};
class B : virtual public A { }; // 使用虚拟继承
class C : virtual public A { }; // 使用虚拟继承
class D : public B, public C { }; // D继承自B和C
int main() {
D d;
std::cout << "Value: " << d.value << std::endl; // 输出正确的唯一A::value
return 0;
}分析
虚拟继承的优缺点
总结
Last updated