网站大量收购独家精品文档,联系QQ:2885784924

92继承:基本类别与衍生类别public.PPT

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
92继承:基本类别与衍生类别public

第九章 Inheritance(繼承) 9.1 簡介 繼承(Inheritance) 從現存類別來建立新的類別 將現存類別的屬性與行為繼承過來,某部份可加以修改 Derived class(衍生類別、繼承別人的類別) 從基本類別(被繼承的類別)繼承資料成員與成員函式的類別。 單一繼承(Single inheritance) 只從一個基本類別繼承的類別 多重繼承(Multiple inheritance) 從很多個基本類別繼承的類別 繼承的種類:public、protected、private 這一章中主要使用 public 繼承,也就是每個衍生類別的物件都可以看作基本類別的物件。 9.1 簡介 Polymorphism(多型、第十章) 用一般化的方式寫程式 相關的類別都可以用同一種方式來處理 多介紹一種類別的成員存取方式,除了 private 與 public 外,又多了 protected。 衍生類別可以存取基本類別的 protected 成員,但不能存取 private 成員。 很多軟體公司提供類別庫,程式設計者寫程式時,可以直接從這些標準化的、可再使用的元件直接繼承過來,與硬體的建構方式類似。 9.2 繼承:基本類別與衍生類別 基本類別與衍生類別 通常衍生類別(子類別)的物件也算為基本類別的物件 矩形類別可當作四邊形類別的衍生類別,矩形也是四邊形、但四邊形未必是矩形 繼承的範例 9.2 繼承:基本類別與衍生類別 9.2 繼承:基本類別與衍生類別 public 繼承的實作方式 class CommissionWorker : public Employee { ... }; 類別 CommissionWorker 從 Employee 繼承 friend 函式沒有被繼承 基本類別的 private 成員不能被衍生類別存取 這是 public 繼承,是最普通的繼承方式 基本類別的 public 與 protected 成員都會被繼承為衍生類別的 public 與 protected 成員。 衍生類別的物件可以視為基本類別的物件,但基本類別的物件不可視為衍生類別的物件 9.3 protected 成員 基本類別的 public 成員可被程式中任何函式存取,基本類別的 private 成員只能被基本類別的成員函式或friends存取。 protected 存取方式 被保護的程度介於 public 與 private 存取方式之間 衍生類別成員只要使用成員名稱就可存取基本類別的 public 與 protected 成員。 注意 protected 資料會破壞封裝,當基本類別的 protected 成員有改變時,所有的衍生類別都要跟著改變。 9.4衍生類別與基本類別的關係 Example: Point/circle inheritance hierarchy Point x-y coordinate pair Circle x-y coordinate pair Radius 1 // Fig.?9.4: point.h 6 class Point { 8 public: 9 Point( int = 0, int = 0 ); 11 void setX( int ); 12 int getX() const; 14 void setY( int ); 15 int getY() const; 17 void print() const; 19 private: 20 int x; 21 int y; 23 }; 18 void Point::setX( int xValue ) { 20 x = xValue; } 25 int Point::getX() const { 27 return x; 29 } 30 32 void Point::setY( int yValue ) { 34 y = yValue; 36 } 37 39 int Point::getY() const { 41 return y; 43 } 46 void Point::print() const { 48 cout [ x , y ]; 50 }

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档