我有以下代码片段,我想知道c++编译器选择了哪条路径来继承该成员。
class B
{
public:
void display()
{
cout << "B";
}
};
class B1 : virtual public B
{
};
class B2 : virtual public B
{
};
class C : public B1, public B2
{
};
int main()
{
C c;
c.display();
getchar();
return 0;
}
是否真的有可能让编译器选择路径,如果有请告诉。可能是一个基本问题,但请花一些时间。提前致谢。
最佳答案
它不是由编译器选择的,它是由语言定义的。 B
是虚拟的,所以 C
有一个 B
基类。它的基类将按照B
、B1
、B2
的顺序构建。
关于c++ - 获取虚基类的继承路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24970249/