【发布时间】:2021-03-20 13:09:51
【问题描述】:
这是我从网上得到的代码... 以及虚拟关键字是如何工作的? 我认为这个 virtual 关键字与这种行为有关,但我不明白它是什么。
class A {
int x;
public:
A(int i) { x = i; }
void print() { cout << x; }
};
class B : virtual public A {
public:
B()
: A(10)
{
}
};
class C : virtual public A {
public:
C()
: A(10)
{
}
};
class D : public B, public C {
};
int main()
{
D d;
d.print();
return 0;
}
【问题讨论】:
-
您从哪里获取代码?你在哪里读到不能调用祖父方法?
-
请格式化您的代码
-
你在这里混淆了几件事。其中之一是virtual base classe。
-
你能提供这个假设的来源吗?
标签: c++ class inheritance methods virtual