C++ 各种继承关系中的虚函数探幽
最近在学习C++,卡在了实现多态的虚函数这里,之后通过阅读博文:C++虚函数表解析和自己的一些实践,有了点初步的理解,如果错误,欢迎指正。
首先建立如图所示的继承关系:
代码如下:
class A
{
public:
virtual void speak()
{
cout << "this is A"<<endl;
}
};
class B
{
public:
virtual void speak()
{
cout << "this is B" << endl;
}
};
class C:public A
{
public:
virtual void speak()
{
cout << "this is C" << endl;
}
};
class D:public A,public B
{
public:
virtual void speak()
{
cout << "this is D" << endl;
}
};
class E:public C
{
public:
virtual void speak()
{
cout << "this is E" << endl;
}</