Strings



Similar documents
Microsoft PowerPoint - L17_Inheritance_v4.pptx

Microsoft Word - chap10.doc

Strings

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc

Microsoft PowerPoint - ch_12 [唯讀]

extend

第七讲 继承与多态

Microsoft Word - 物件導向編程精要.doc

Microsoft Word - ch04三校.doc

溝通協調與激勵領導

Chapter12 Derived Classes

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

Microsoft Word cppFinalSolution.doc

全国计算机技术与软件专业技术资格(水平)考试

ebook55-13

Microsoft PowerPoint - plan08.ppt

<4D F736F F D20A4D5A46CA1D0A740A4E5A5FEB6B02E646F63>

Microsoft Word - d.doc

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

c_cpp

untitled

untitled

提问袁小兵:

Chapter 9: Objects and Classes

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

FY.DOC

(procedure-oriented)?? 2

C/C++程序设计 - 字符串与格式化输入/输出

壹 前 言 : 一 研 究 動 機 不 久 前, 我 的 祖 母 因 地 板 濕 滑 而 造 成 手 部 骨 折, 醫 生 說 祖 母 年 長, 骨 質 疏 鬆 造 成 傷 勢 嚴 重, 需 要 多 補 充 鈣 質 頓 時, 讓 我 想 起 一 句 話 你 攝 取 足 夠 的 鈣 質 嗎? 這 句

1911 年 武 汉 起 义, 广 东 独 立 胡 汉 民 任 总 督, 陈 任 广 东 军 政 府 外 交 部 副 部 长 陈 不 愿 做 官, 几 个 月 后 即 辞 职 1915 年 与 李 煜 堂 设 立 上 海 保 险 公 司, 陈 任 主 席 1921 年 孙 中 山 就 任 非 常 大

得 到 了 補 償. 對 於 武 姜 而 言, 莊 公 與 自 己 的 關 係 並 不 親 密, 而 共 叔 段 又 是 自 己 向 來 疼 愛 有 加 的 兒 子, 所 以, 對 莊 公 提 出 再 怎 麼 無 理 的 要 求, 武 姜 也 不 會 覺 得 有 什 麼 不 妥 之 處, 而 對 共

一 耀 州 青 瓷 的 裝 飾 手 法 與 紋 飾 種 類 耀 州 窯 的 裝 飾 紋 樣, 豐 富 多 變, 而 且 題 材 內 容 廣 泛, 組 合 形 式 多 樣, 圖 案 形 象 優 美, 令 人 賞 心 悅 目, 並 且 反 映 了 當 時 社 會 的 審 美 趣 味 和 理 想 裝 飾

Factory Methods

FIT1改1.FIT)

untitled

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft Word - 第3章.doc

相 应 功 能 (5) 再 将 Boy 类 作 为 Girl 类 的 友 元 类, 在 Boy 类 的 某 成 员 函 数 VisitGirl(Girl & ) 中 访 问 Girl 类 的 私 有 成 员, 观 察 编 译 器 给 出 的 信 息 ( 6 ) 删 除 两 个 类 中 的 函 数 V

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

EJB-Programming-3.PDF

102?~5???????Z(???s).pub

ebook39-5

Microsoft PowerPoint - ch6 [相容模式]

教育部補助國內大學校院博士班研究生出席國際會議報告

<4D F736F F D20CBD5D6DDBFC6BCBCD1A7D4BACCECC6BDD1A7D4BA C4EAB1BEBFC6D5D0C9FAD7A8D2B5BDE9C9DC2E646F63>

<4D F736F F D20A578C657B3C8C077C0B8BB50BAD6ABD8B3C8C077C0B8B6C7A9D3A4A7BADEBF732E646F63>

untitled

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

1.5招募说明书(草案)

運算子多載 Operator Overloading

國家圖書館典藏電子全文

C 1

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

Microsoft Word - 2B802內文.doc

鍟嗗搧瑙傚療鈥㈤挗鏉

席 远 杨 一 人 了, 正 当 她 开 枪 时 却 发 现 子 弹 没 了 该 死, 只 能 赤 手 空 拳 了 洛 水 云 与 席 远 杨 交 起 手 来, 洛 水 云 出 手 招 招 致 命 想 那 席 远 杨 也 不 是 泛 泛 之 辈, 很 快 掌 握 了 洛 水 云 出 招 路 数 看

東區校園中法治教育種子師資教學研習營

閱 讀 素 材 V.S 分 組 方 式 的 差 異 化 教 學 工 具 表 班 級 :( ) 閱 讀 素 材 V.S 分 組 方 式 獨 立 閱 讀 夥 伴 閱 讀 ( 同 質 性 ) 夥 伴 閱 讀 ( 異 質 性 ) 友 善 陪 伴 虛 心 受 教 國 語 日 報 新 聞 生 活 文 藝 兒 童

CHAPTER VC#

附 件

BSAP_ConsultChi05_1.indd

5 1 文 书 原 件 优 先 的 原 则 和 例 外 兼 评 最 高 人 民 法 院 关 于 民 事 诉 讼 证 据 的 若 干 规 定 第 69 条 / 纪 格 非 论 点 与 思 考 5 3 优 先 受 偿 权 是 什 么 权? 浅 谈 建 筑 工 程 优 先 受 偿 权 的 性 质 及 价

早 期 療 育 教 保 人 員 應 具 備 下 列 資 格 之 一 : 一 專 科 以 上 學 校 醫 護 職 能 治 療 物 理 治 療 教 育 特 殊 教 育 早 期 療 育 幼 兒 教 育 幼 兒 保 育 社 會 社 會 福 利 社 會 工 作 心 理 輔 導 兒 童 及 少 年 福 利 或

陕 西 省 城 市 社 区 社 会 管 理 创 新 现 状 困 境 及 建 议 一 陕 西 省 城 市 社 区 管 理 现 状 分 析 ( 一 ) 社 区 社 会 管 理 创 新 的 重 要 举 措 1. 高 度 重 视 社 区 的 社 会 管 理, 积 极 探 索 总 结 经 验 自 2000 年

1-8章.indd

事 業 單 位 改 組 或 轉 讓, 舊 勞 工 不 願 意 續 任 者, 可 否 請 求 資 遣 費? 工 或 與 勞 工 協 商 同 意 後 簽 訂 新 約, 以 穩 固 勞 雇 關 係 至 於 改 組 或 轉 讓 過 程 中, 被 商 定 留 用 之 勞 工, 如 因 其 勞 動 條 件 有

Microsoft Word - 江湖行帮趣话

人 員 分 配 完 畢 後, 分 配 訓 練 之 需 本 法 第 三 條 第 一 項 所 稱 分 發 機 關, 指 銓 敘 部 及 行 政 院 人 事 行 政 總 處 本 法 第 三 條 第 一 項 所 稱 定 期 依 序, 指 分 發 機 關 或 申 請 舉 辦 考 試 機 關 於 下 次 該 項

关于印发《实验室骨干教师评聘及管理办法》的通知

2 2. ( 4 ) =? 在 電 子 計 算 器 之 最 適 當 操 作 過 程 為 ( 3 ) 乘 除 算 名 數 題 目 應 求 小 數 幾 位 以 下 四 捨 五 入 11 位 23 位 32 位 40 位 2 4. ( 3

<4D F736F F D20AAFEA5F333B4E5AA61B1D0BEC7BFC4A44AA655BBE2B0ECA544C3445FB5A3B8D6B3D0A740B1D0BEC72E646F63>

105年公務員申領或侵占小額款項

德 华 安 顾 人 寿 保 险 有 限 公 司 银 行 保 险 业 务 系 列 人 员 管 理 办 法 (2014 版 ) 目 录 第 一 章 第 二 章 第 三 章 第 四 章 第 五 章 第 六 章 第 七 章 第 八 章 总 则 人 力 编 制 及 岗 位 职 责 人 员 管 理 制 度 考

( 有 限 合 伙 )( 以 下 简 称 杭 州 金 葵 ) 和 杭 州 金 锋 投 资 管 理 合 伙 企 业 ( 有 限 合 伙 )( 以 下 简 称 杭 州 金 锋 )( 以 下 合 称 交 易 对 方 ) 购 买 其 持 有 的 卓 诚 兆 业 100% 股 份 ( 以 下 简 称 本 次

海大学字[2004]3号


第 1期 楼彩霞 价值链视角下北京光线传媒股份有限公司商业模式创新研究 101 竞争优势 二 商业模式理论与价值链理论的关系 什么是商业模式 国外学者 Dub n 2002 等 认 为 商 业 模 式 是 企 业 为 了 进 行 价 值 创 造 价 值 营销和价值提供所形成的企业结构及其合作伙伴网络

C 佟 某 委 托 中 介 为 其 征 婚 D 海 盈 房 地 产 公 司 委 托 律 师 事 务 所 代 其 办 理 登 记 事 项 8 根 据 民 法 通 则, 施 工 单 位 的 项 目 经 理 属 于 施 工 单 位 的 ( ) A 委 托 代 理 人 B 法 定 代 理 人 C 指 定 代

Microsoft Word - prac_exp13.doc

目 錄 大 會 歡 迎 詞 裁 判 長 的 話 選 手 賽 前 準 備 清 單 賽 事 日 程 表 選 手 報 到 比 賽 日 - 大 會 服 務 關 門 時 間 台 東 關 門 時 間 轉 換 區 須 知 台 東 轉 換 區 須 知 自 行 車 檢 錄 轉 換 袋 台 灣 游 泳 公 里 游 泳

Microsoft Word - report.doc

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

K526-ML

日 期 课 堂 内 容 生 词 语 法 和 重 点 练 习 家 庭 作 业 内 容 9/6/2014 第 一 课 在 公 园 里 ( 上 ) 生 字 组 词 : 附 近 显 得 格 外 宁 静 艺 1 做 作 业 册 A 第 1 页 到 第 3 页 术 复 制 1 介 绍 自 己, 宣 读 学 校

Microsoft Word - Learn Objective-C.doc

汇集全球21位医生的经验和智慧,总结出最实用的专业建议,这些都是最值得你牢记的健康提醒

1 行 业 发 展 不 平 衡 我 国 房 地 产 中 介 服 务 业 起 步 较 晚, 专 业 分 工 程 度 和 国 外 发 达 国 家 相 比 还 有 很 大 差 距 房 地 产 中 介 服 务 行 业 的 发 展 水 平 与 房 地 产 开 发 行 业 的 市 场 化 水 平 密 切 相 关

運算子多載 Operator Overloading

目 录

无类继承.key

教育部補助國內大學校院博士班研究生出席國際會議報告

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Java

第 一 部 分 增 城 区 人 力 资 源 和 社 会 保 障 局 概 况 一 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 主 要 职 能 广 州 市 增 城 区 人 力 资 源 和 社 会 保 障 局 是 区 委 区 政 府 主 管 人 事 人 才 劳 动 社 会 保 障 的

新・解きながら学ぶJava

陳 湘 昀 和 廖 虹 雅 : 我 也 是 欸! 廖 虹 雅 : 我 想 去 紐 西 蘭 跟 澳 洲, 我 還 想 環 遊 歐 洲, 但 我 沒 錢! 助 教 學 姊 : 我 也 是, 而 且 我 現 在 有 自 己 在 存 錢 想 自 己 出 國 去 玩 霍 露 思 : 那 你 可 以 來 香 港

Transcription:

Inheritance Cheng-Chin Chiang

Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A 類 別 是 一 種 B 類 別 每 個 正 方 形 是 一 個 矩 形 每 輛 吉 普 車 都 是 一 輛 汽 車 每 匹 白 馬 都 是 匹 馬 C ++ 透 過 類 別 嵌 入 (embedding) 與 類 別 繼 承 (inheritance) 兩 種 方 式 來 處 理 這 三 種 類 別 間 的 關 係

Class Embedding 類 別 嵌 入 將 某 A 類 別 物 件 嵌 入 某 B 類 別 內 甲 類 別 物 件 被 當 成 乙 類 別 內 的 資 料 成 員 class Date { int year, month, day ; }; class Student { private: string name ; bool gender ; Date birthday ; int id ; };

Constructors for Class Embedding 當 A 類 別 內 有 B 類 別 物 件 的 資 料 成 員 時, 則 建 構 每 個 A 類 別 物 件 時, 須 先 行 建 構 B 類 別 物 件 資 料 成 員 class Car { private: Engine engine ; Wheel wheel ; Tire tire ;... };... Car BMW ; // 以 上 BMW 相 當 於 執 行 了 以 下 的 備 用 建 構 函 式 Car::Car() : engine(), wheel(), tire(){}

Destructors for Class Embedding 嵌 入 物 件 消 失 時, 會 依 次 去 除 其 內 資 料 成 員 所 佔 有 的 記 憶 空 間 後, 才 會 真 正 消 失 C++ 是 透 過 執 行 各 成 員 類 別 的 解 構 函 式 來 去 除 資 料 成 員 各 自 佔 用 的 空 間

class A { private: B a ; }; class B { private: C b ; }; class C { };... 建 構 與 解 構 C A obja ; B A

When to Use Class Embedding 擁 有 包 含 // 多 邊 形 包 含 許 多 頂 點 class Polygon { private: Point pts[20] ; }; // 大 學 包 含 許 多 學 院 class University { private: College col[20] ; }; // 顏 色 由 紅, 綠, 藍 三 種 顏 色 組 成 class Color { private: int red, green, blue ; }; 使 用 利 用 class Stack { private: vector<int> data ; // 儲 存 整 數 public: void push( int item ) { data.push_back(item) ; } void pop(){ data.pop_back() ; } int top() const { return data[ data.size()-1 ] ; } }; push 堆 疊 stack 頂 部 底 部 pop top bottom

Introduction to Inheritance 繼 承 : 物 件 導 向 程 式 語 言 的 一 個 好 特 性, 對 應 到 類 別 關 係 中 的 類 別 A 是 類 別 B 車 基 礎 類 別 跑 車 轎 車 貨 車 休 旅 車 衍 生 類 別 Toyota Wish Mazda 5 Ford Escape 實 體 物 件 基 礎 類 別 也 可 稱 為 父 類 別 (parent class) 衍 生 類 別 也 可 稱 為 子 類 別 (child class) 基 本 概 念 先 有 抽 象 基 礎 類 別 (Base Class): 較 為 一 般 化 ( 含 有 共 通 的 屬 性 和 功 能 ) 再 有 具 體 衍 生 類 別 (Derived Class): 較 為 特 殊 化 ( 含 有 各 自 特 別 的 屬 性 和 功 能 ) 衍 生 類 別 可 繼 承 基 礎 類 別 的 屬 性 ( 資 料 成 員 ) 和 功 能 ( 函 數 成 員 ), 也 可 重 新 定 義 功 能 或 是 自 訂 全 新 屬 性 和 功 能

Syntax for Class Inheritance 公 共 繼 承 class Derived : public Base_Class {... } ; 保 護 繼 承 class Derived : protected Base_Class {... } ; 私 有 繼 承 class Derived : private Base_Class {... } ;

Types of Inheritance 衍 生 類 別 的 繼 承 方 式 私 有 區 基 礎 類 別 的 保 護 區 公 共 區 私 有 繼 承 不 繼 承 私 有 區 私 有 區 保 護 繼 承 不 繼 承 保 護 區 保 護 區 公 共 繼 承 不 繼 承 保 護 區 公 共 區 Base Derived 公 共 繼 承 public 公 共 public 公 共

Types of Inheritance (cont.) Base Derived 私 有 繼 承 public 公 共 public 公 共 Base Derived public 公 共 public 公 共 保 護 繼 承

Hierarchical Inheritance A B C public 公 共 public 公 共 public 公 共 class B : public A {...}; class C : public B {...};

Hierarchical Inheritance (cont.) A B C public 公 共 public 公 共 public 公 共 class B : protected A {...} ; class C : public B {...} ; 類 別 C 的 成 員 函 式 仍 可 自 由 地 使 用 在 A 類 別 保 護 區 與 公 共 區 內 的 成 員

Hierarchical Inheritance (cont.) A B C public 公 共 public 公 共 public 公 共 class B : private A {...} ; class C : public B {...} ; 對 C 類 別 而 言, 類 別 A 並 不 存 在, 所 有 類 別 A 的 可 繼 承 成 員 僅 止 於 類 別 B

Single Inheritance vs. Multiple Inheritance class B1 {...} ; class D1 : public B1 {...} ; class D2 : private B1 {...} ; 單 一 繼 承 D1 B1 D2 class B1 {...} ; class B2 {...} ; class D3 : public B1, private B2 {... } ; B1 D3 B2 多 重 繼 承

Single Inheritance vs. Multiple Inheritance: Example 車 子 船 舶 獸 力 車 機 器 動 力 車 馬 車 轎 車 水 陸 兩 用 車 遊 艇

Multiple Inheritance 使 用 多 重 繼 承 時, 若 無 法 明 確 分 辨 所 繼 承 來 的 成 員 函 式 的 來 源, 就 須 將 被 繼 承 類 別 名 稱 一 併 寫 上 class B { public: int abs( int i ){ return i > 0? i : -i ; } }; class C { public: double abs( double d ){ return d > 0? d : -d ; } }; class A : public B, public C {...} ; A foo; cout << foo.b::abs(2) << endl cout << foo.c::abs(2) << endl

Virtual Base Classes C E C C B A D 如 果 C=E B A D A 重 複 繼 承 C, 造 成 資 料 重 複 儲 存 修 正 方 法 : 使 用 虛 擬 基 礎 類 別

Virtual Base Classes C class C {...} ; B D class B : virtual public C {...} ; class D : virtual public C {...} ; A class A : public B, public D {...} ; 此 菱 形 架 構 的 基 礎 類 別 C 被 稱 為 虛 擬 基 礎 類 別 宣 告 為 虛 擬 之 基 礎 類 別 不 管 被 繼 承 幾 次, 只 會 儲 存 一 份 資 料 成 員, 反 之, 非 虛 擬 之 基 礎 類 別 則 會 儲 存 多 份 資 料 成 員 ( 浪 費!)

例 題 : 類 別 繼 承

例 題 : 類 別 繼 承 ( 續 ) 新 增 函 數 重 新 定 義 函 數 不 擬 重 新 定 義 函 數 的 函 數 毋 需 再 列 出!

Files of Derive Classes 衍 生 類 別 的 定 義 檔 (*.h) 須 包 括 : 新 訂 資 料 成 員 與 函 數 成 員 之 宣 告 擬 重 新 定 義 的 成 員 函 數 之 宣 告 衍 生 類 別 的 實 作 檔 (*.cpp) 須 包 括 : 新 成 員 函 數 的 內 部 實 作 重 新 定 義 函 數 的 內 部 實 作

Redefining vs. Overloading 不 同 的 二 件 事 重 新 定 義 函 數 相 同 的 參 數 列 不 同 的 函 數 內 部 設 計 覆 載 ( 多 載 ) 函 數 不 同 的 參 數 列 不 同 的 函 數 內 部 設 計

Accessing Redefined Base Function 即 使 基 礎 類 別 函 數 被 衍 生 類 別 重 新 定 義, 在 衍 生 別 中 依 然 可 以 使 用 基 礎 類 別 之 原 來 函 數 Employee JaneE; HourlyEmployee SallyH; JaneE.printCheck(); // calls Employee s printcheck function SallyH.printCheck(); // calls HourlyEmployee printcheck function SallyH.Employee::printCheck(); // Calls Employee s printcheck function!

Functions Not Inherited 所 有 基 礎 類 別 的 函 數 都 會 被 衍 生 類 別 繼 承, 除 了 建 構 子 Constructors (we ve seen) 結 構 子 Destructors 拷 貝 建 構 子 (Copy constructor) 若 是 沒 有 定 義,compiler 自 動 產 生 一 個 基 本 的 預 設 版 本 ( 可 能 不 是 我 們 真 正 需 要 的 正 確 版 本 ) 最 好 自 己 重 新 設 計, 特 別 是 有 關 動 態 記 憶 體 配 置 的 部 分 指 定 運 算 子 若 是 沒 有 定 義,compiler 自 動 產 生 一 個 基 本 的 預 設 版 本 ( 可 能 不 是 我 們 真 正 需 要 的 正 確 版 本 ) 最 好 自 己 重 新 設 計, 特 別 是 有 關 動 態 記 憶 體 配 置 的 部 分

Derived Class Constructor HourlyEmployee::HourlyEmployee(string thename, string thenumber, double thewagerate, double thehours) : Employee(theName, thenumber), wagerate(thewagerate), hours(thehours) { //Deliberately empty } 記 得 呼 叫 基 礎 類 別 ( 如 Employee) 的 建 構 子, 若 沒 有 明 確 寫 出, 則 基 礎 類 別 的 預 設 建 構 子 會 自 動 被 執 行

Copying and Assignment between Base Classes and Derived Classes 衍 生 類 別 物 件 複 製 / 指 定 到 基 礎 類 別 物 件 class Base {...} ; class Derived : public Base {...} ; Derived foo ; 僅 切 割 衍 生 類 別 所 繼 承 來 的 基 礎 類 別 資 料 成 員 來 複 製 / 指 定 Base bar1(foo) ; Base bar2; bar2 = foo; 基 礎 類 別 物 件 複 製 / 指 定 成 衍 生 類 別 物 件 基 礎 類 別 的 資 料 不 足, 無 法 複 製 / 指 定 成 衍 生 類 別 物 件

Destructors in Derived Classes 當 衍 生 類 別 的 解 構 子 被 呼 叫 時, 基 礎 類 別 的 解 構 子 也 會 自 動 被 呼 叫 因 此, 衍 生 類 別 的 解 構 子 的 設 計 中 只 要 負 責 衍 生 類 別 額 外 新 定 義 的 資 料 成 員 的 收 尾 工 作 即 可

Destructor Calling Order 假 設 class B 繼 承 自 class A class C 繼 承 自 class B 解 構 順 序 :A B C 建 構 子 的 順 序 剛 好 相 反