gpt4 book ai didi

c++ - 使用虚拟基类时多重继承如何工作?

转载 作者:行者123 更新时间:2023-11-28 02:06:32 25 4
gpt4 key购买 nike

<分区>

使用虚拟基类时多重继承是如何工作的?我们如何知道何时何地应该使用虚基类?

对于下面的代码,我们如何获取输出呢?

class A {
public:
A() {
cout<<"\t A";
}
};

class B: public A {
public:
B() {
cout<<"\t B";
}
};

class C: public B {
public:
C() {
cout<<"\t C";
}
};

class D: virtual C {
public:
D() {
cout<<"\t D";
}
};

class E: virtual C, virtual D {
public:
E() {
cout<<"\t E";
}
};

class F: public B, virtual E {
public:
F() {
cout<<"\t F";
}
};

int main() {
F obj;
}

输出是:

     A       B       C       D       E       A       B       F

我收到警告[警告] 由于歧义,无法在“F”中访问直接基“B”[默认启用]

我该如何纠正??

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com