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;
C++ 虚函数在继承关系中的多态实现

本文探讨C++中虚函数在不同继承关系下的多态实现,包括虚函数表的工作原理、内存布局以及如何通过虚函数实现多态。通过实例分析,解释了虚函数表的地址变化以及不声明虚函数时如何实现多态。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



