C++ 面试题 目录

解释 C++ 中的继承 (inheritance)

推荐答案

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

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

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

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

本题详细解读

继承的概念

继承是面向对象编程中的一个重要特性,它允许一个类(派生类)从另一个类(基类)继承属性和方法。通过继承,派生类可以复用基类的代码,并且可以在派生类中添加新的属性和方法,或者重写基类的方法。

继承的类型

C++ 支持多种类型的继承:

  1. 公有继承 (public inheritance):基类的公有成员在派生类中仍然是公有的,保护成员在派生类中仍然是保护的。
  2. 保护继承 (protected inheritance):基类的公有和保护成员在派生类中都变为保护的。
  3. 私有继承 (private inheritance):基类的公有和保护成员在派生类中都变为私有的。

示例代码解析

在示例代码中,Dog 类公有继承了 Animal 类。这意味着:

  • Animal 类的公有成员 eat()Dog 类中仍然是公有的,因此 Dog 类的对象可以直接调用 eat() 方法。
  • Dog 类可以添加自己的方法,如 bark(),并且可以在 main() 函数中调用。

继承的优点

  1. 代码复用:通过继承,派生类可以复用基类的代码,减少代码重复。
  2. 扩展性:派生类可以在不修改基类的情况下扩展基类的功能。
  3. 多态性:通过继承和多态,可以实现运行时绑定,提高代码的灵活性。

注意事项

  1. 访问控制:继承时需要注意访问控制符的使用,不同的继承方式会影响基类成员在派生类中的访问权限。
  2. 多重继承:C++ 支持多重继承,即一个类可以从多个基类继承,但多重继承可能导致复杂性增加,应谨慎使用。
  3. 虚函数:如果需要在派生类中重写基类的方法,应将基类的方法声明为虚函数,以实现多态性。
纠错
反馈