推荐答案
纯虚函数 (Pure Virtual Function)
纯虚函数是在基类中声明但不定义的虚函数。它的声明方式是在函数声明的末尾加上 = 0
。纯虚函数的主要目的是强制派生类必须实现该函数。如果一个类包含至少一个纯虚函数,那么这个类就是抽象类。
class Base { public: virtual void show() = 0; // 纯虚函数 };
抽象类 (Abstract Class)
抽象类是指包含至少一个纯虚函数的类。抽象类不能被实例化,只能作为基类被继承。派生类必须实现基类中的所有纯虚函数,否则派生类也会成为抽象类。
class Derived : public Base { public: void show() override { std::cout << "Derived class implementation" << std::endl; } };
本题详细解读
纯虚函数的作用
纯虚函数的主要作用是定义一个接口,强制派生类实现该接口。这样可以确保所有派生类都具有某种行为或功能。纯虚函数通常用于设计模式中的接口类或抽象基类。
抽象类的特性
- 不能实例化:抽象类不能直接创建对象,只能通过派生类来实例化。
- 强制派生类实现纯虚函数:派生类必须实现基类中的所有纯虚函数,否则派生类也会成为抽象类。
- 多态性:通过基类指针或引用调用纯虚函数时,实际调用的是派生类的实现。
示例代码解析
-- -------------------- ---- ------- -------- ---------- ----- ---- - ------- ------- ---- ------ - -- -- ---- -- ----- ------- - ------ ---- - ------- ---- ------ -------- - --------- -- -------- ----- --------------- -- ---------- - -- --- ------ - -- ---- ---- -- ----------- ------- ---- ----------- -- --- ------- ----- -------------- ----- --- - ----- ------------ -- --- ------- ----- -------------- ------ -- -
在这个示例中,Base
类是一个抽象类,因为它包含一个纯虚函数 show()
。Derived
类继承自 Base
并实现了 show()
函数。通过基类指针 ptr
调用 show()
时,实际调用的是 Derived
类的实现,展示了多态性的特性。