推荐答案
-- -------------------- ---- ------- -------- ---------- ----- ---- - ------- ------- ---- ------ - --------- -- ----- ----- ---- --------- -- ---------- - -- ----- ------- - ------ ---- - ------- ---- ------ -------- - --------- -- -------- ----- ---- --------- -- ---------- - -- --- ------ - ----- -------- ------- ----------- ------- - ------------ -- ---- ---------------- -- --- ------- ----- ---- -------- ------ -- -
本题详细解读
多态的概念
多态(Polymorphism)是面向对象编程中的一个重要特性,它允许不同类的对象对同一消息做出不同的响应。在C++中,多态主要通过虚函数(virtual function)来实现。
虚函数与动态绑定
在C++中,通过在基类中声明虚函数,并在派生类中重写(override)该函数,可以实现多态。当通过基类指针或引用调用虚函数时,实际调用的是派生类中的函数版本,这种行为称为动态绑定(Dynamic Binding)或运行时多态(Runtime Polymorphism)。
代码解析
- 基类
Base
:定义了一个虚函数show()
,该函数在派生类中可以被重写。 - 派生类
Derived
:重写了基类的show()
函数,提供了不同的实现。 - 多态调用:在
main
函数中,基类指针basePtr
指向派生类对象derivedObj
,并通过该指针调用show()
函数。由于show()
是虚函数,实际调用的是派生类中的show()
函数,输出结果为"Derived class show function"
。
关键点
- 虚函数:通过在基类中使用
virtual
关键字声明虚函数,允许派生类重写该函数。 - 动态绑定:通过基类指针或引用调用虚函数时,实际调用的是派生类中的函数版本。
override
关键字:在派生类中重写虚函数时,可以使用override
关键字来显式表明重写行为,增加代码的可读性和安全性。
通过多态,C++ 程序可以在运行时根据对象的实际类型来调用相应的函数,从而实现更灵活和可扩展的设计。