C++ 多态性演示:派生类重写基类函数
C++ 多态性示例:派生类重写基类函数
本示例展示了 C++ 中派生类重写基类函数以实现多态性的概念。通过代码演示,您可以直观地理解动态多态性是如何工作的。
代码示例:
#include <iostream>
using namespace std;
class Base {
int a, b;
public:
Base(int x, int y) { a = x; b = y; }
void show() {
cout << ' ' << "a=" << a << ' ' << "b=" << b;
}
};
class Derived : public Base {
int c;
public:
Derived(int x, int y, int z) : Base(x, y) { c = z; }
void show() {
Base::show();
cout << ' ' << "c=" << c;
}
};
int main() {
Base mb(50, 50), *mp;
Derived md(10, 20, 30);
mp = &mb; mp->show();
cout << endl;
mp = &md;
mp->show();
cout << endl;
((Derived*)mp)->show(); cout << endl;
return 1;
}
解释:
-
当执行
mp=&md; mp->show();时,调用的是Derived派生类的show()函数。这是因为虽然mp指针指向Base类,但实际存储的是Derived对象,而show()函数在Derived类中被重写了。 -
函数
show()称为 虚函数,实现了 动态多态性。动态多态性是指在运行时根据对象的实际类型来调用相应的方法,即使mp指向Base类,但由于实际对象是Derived,因此调用了Derived类中的show()函数。
结论:
本示例展示了 C++ 中派生类重写基类函数以实现多态性的概念,以及动态多态性是如何在运行时根据对象的实际类型来选择方法调用的。
原文地址: https://www.cveoy.top/t/topic/n0zv 著作权归作者所有。请勿转载和采集!