c++ primer plus 第10章 类和对象

   面向 对 象编程 强 调 的 是 程 序 如 何 表 示 数 据 。 使 用 00P 方 法 解 决 编 程 问题 的 第 一 步 是 根 据 它 与 程 序 之 间 的 接 口 来 描 述数 据 , 从 而 指 定 如 何 使 用 数 据 。 然 后 , 设 计 一 个类 来 实 现 该 接 口 。 一 般 来 说 , 私 有 数 据 成员存 储 信 息 , 公 有 成 员 函 数 ( 又 称 为 方 法 ) 提 供 访 问数 据 的 唯 一 途 径 。 类 将 数 据 和 方 法 组 合 成 一 个 单 元 , 其 私 有 性 实 现 数 据 隐 藏 。

   通常 , 将 类 声 明 分 成 两 部 分 组 成 , 这 两 部 分 通 常 保 存 在 不 同 的 文 件 中 。 类 声 明 ( 包 括 由 函 数 原型 表 示 的 方 法 ) 应 放 到 头 文 件 中 。 定 义 成 员 函 数 的 源 代 码 放 在 方 法 文 件 中 。 这 样 便 将 接 口 描述 与 实 现 细 节 分 开 了 。 从 理 论 上 说 , 只 需 知 道 公 有 接 口 就 可 以 使 用 类 。 当 然 , 可 以 查 看 实 现方 法 ( 除 非 只 提 供 了 编 译 形 式 ) , 但 程 序 不 应 依 赖 于 其 实 现 细 节 , 如 知 道 某 个 值 被 存 储 为 int。 只 要 程 序 和 类 只 通 过 定 义 接 口 的 方 法 进 行 通 信 , 程 序 员 就 可 以 随 意 地 对 任 何 部 分 做 独 立 的改 进 , 而 不 必 担 心 这 样 做 会 导 致 意 外 的 不 良 影 响 。

   类是用 户 定 义 的 类 型 , 对 象 是 类 的 实 例 。 这 意 味 着 对 象 是 这 种 类 型 的 变 量 , 例 如 由 new 按 类 描 述 分 配 的 内 存 。 c ++试 图 让 用 户定 义 的 类 型 尽 可 能 与 标 准 类 型 类 似 , 因 此 可 以 声 明 对 象 、 指 向 对 象 的 指 针 和 对 象 数 组 。 可 以按 值 传 递 对 象 、 将 对 象 作 为 函 数 返 回 值 、 将 一 个 对 象 赋 给 同 类 型 的 另 一 个 对 象 。 如 果 提 供 了构 造 函 数 , 则 在 创 建 对 象 时 , 可 以 初 始 化 对 象 。 如 果 提 供 了 析 构 函 数 方 法 , 则 在 对 象 消 亡 后, 程 序 将 执 行 该 函 数 。

   每个 对 像 都 存 储 自 己 的 数 据 , 而 共享 类 方 法 。 如 果 object 是 对 象 名, try-m e ( ) 是 成 员 函 数 , 则 可 以 使 用 成 员 运 算 符 句 点 调 用 成 员 函 数 :mr-object.try-me( ) 。 在 OOP 中 , 这 种 函 数 调 用 被 称 为将 try一 me 消 息 发 送 给 mr-object对 象 。 在try-me( ) 方 法 中 引 用 类 数 据 成 员 时 , 将 使 用 mr-obj ect 对象 相 应 的 数 据 成 员 。 同 样 , 函 数 调 用 object.try-me( ) 将 访 问 object对象 的 数 据 成 员 。

   如 果 希 望 成 员 函 数 对 多 个 对 象 进 行 操 作 , 可 以 将 额 外 的 对 象 作 为 参数 传 递 给 它 。 如 果 方 法 需 要 显 式 地 引 用 调 用 它 的 对 象 , 则 可 以 使 用 this指 针 。 由 于 this 指 针 被 设 置 为 调 用 对 象 的 地 址 , 因 此 *this 是 该 对 象 的 别 名 。

   类 很 适 合 用 于 描 述 ADTO 公 有 成 员 函 数 接口 提 供 了 ADT 描 述 的 服 务 , 类 的 私 有 部 分 和 类 方 法 的 代 码 提 供 了实 现 , 这 些 实 现 对 类 的 客 户 隐 藏

猜你喜欢

转载自blog.csdn.net/Hu_yilang/article/details/57955033