C++ 面试题 目录

C++ 中纯虚函数 (pure virtual function) 和抽象类 (abstract class) 的概念

推荐答案

纯虚函数 (Pure Virtual Function)

纯虚函数是在基类中声明但不定义的虚函数。它的声明方式是在函数声明的末尾加上 = 0。纯虚函数的主要目的是强制派生类必须实现该函数。如果一个类包含至少一个纯虚函数,那么这个类就是抽象类。

抽象类 (Abstract Class)

抽象类是指包含至少一个纯虚函数的类。抽象类不能被实例化,只能作为基类被继承。派生类必须实现基类中的所有纯虚函数,否则派生类也会成为抽象类。

本题详细解读

纯虚函数的作用

纯虚函数的主要作用是定义一个接口,强制派生类实现该接口。这样可以确保所有派生类都具有某种行为或功能。纯虚函数通常用于设计模式中的接口类或抽象基类。

抽象类的特性

  1. 不能实例化:抽象类不能直接创建对象,只能通过派生类来实例化。
  2. 强制派生类实现纯虚函数:派生类必须实现基类中的所有纯虚函数,否则派生类也会成为抽象类。
  3. 多态性:通过基类指针或引用调用纯虚函数时,实际调用的是派生类的实现。

示例代码解析

-- -------------------- ---- -------
-------- ----------

----- ---- -
-------
    ------- ---- ------ - -- -- ----
--

----- ------- - ------ ---- -
-------
    ---- ------ -------- -
        --------- -- -------- ----- --------------- -- ----------
    -
--

--- ------ -
    -- ---- ---- -- -----------
    ------- ----
    ----------- -- --- ------- ----- --------------

    ----- --- - -----
    ------------ -- --- ------- ----- --------------

    ------ --
-

在这个示例中,Base 类是一个抽象类,因为它包含一个纯虚函数 show()Derived 类继承自 Base 并实现了 show() 函数。通过基类指针 ptr 调用 show() 时,实际调用的是 Derived 类的实现,展示了多态性的特性。

纠错
反馈