C++ 面试题 目录

解释 C++ 中的封装 (encapsulation)

推荐答案

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

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

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

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

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

本题详细解读

什么是封装?

封装是面向对象编程(OOP)中的一个重要概念,它指的是将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元。通过封装,可以隐藏对象的内部实现细节,只暴露必要的接口供外部使用。

封装的好处

  1. 数据隐藏:封装允许将数据成员设为私有(private),从而防止外部代码直接访问或修改这些数据。这有助于保护数据的完整性。
  2. 代码复用:通过封装,可以将相关的数据和方法组织在一起,便于在其他地方复用。
  3. 易于维护:封装使得代码更易于维护和扩展,因为内部实现的改变不会影响到使用该类的其他代码。

示例代码解析

在示例代码中,BankAccount 类封装了一个银行账户的余额(balance)以及相关的操作(depositwithdrawgetBalance)。

  • balance 成员变量:被声明为 private,这意味着它只能在 BankAccount 类的内部访问。外部代码无法直接修改或读取这个值。
  • depositwithdraw 方法:这些方法是 public 的,允许外部代码通过调用这些方法来修改 balance。这些方法内部包含了对输入参数的验证,确保只有合法的操作才会影响 balance
  • getBalance 方法:这个方法也是 public 的,允许外部代码获取当前的余额,但无法直接修改它。

通过这种方式,BankAccount 类实现了封装,保护了 balance 数据的安全性,同时提供了必要的接口供外部代码使用。

纠错
反馈