第十章虛擬函數(virtualfunctions)-.ppt

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

繼承的優點 程式碼再使用 code reuse 抽象概念再使用 類別階層化 澄清物件間的關係 繼承與Code Reuse 被動 繼承與Code Reuse class List …… void insert … void delete … ; 繼承與Code Reuse class List ….. insert int n ;…. delete int pos ; ; class List1: public List node operator[] int index ; //新增 void insert int n ; // 修改: 更高效率的實作方式 ; void main List1 L; ….. ; L.insert 15 ; cout L[3] ; 可能結果 繼承與Code Reuse 主動 作業: list ? stack struct node int info; node* next; ; class list node *head, *tail ; int node_no ; public: list ; list const node n ; list const list L ; ~list ; int getSize ; void insert int pos, int value ; // 0: first, node_no:last void delete int pos ; // 刪除第pos個元素 void show string msg ; //印出串列內容 list operator const list L ; friend list operator+ const list L1, const list L2 ; //聯集 friend list operator* const list L1, const list L2 ; //交集 friend list operator- const listL1, const list L2 ; //差集 ; 使用list產生stack class stack: public list stack ; ~stack ; operator const stack s ; void push int x ; //加在list的最前端 int pop ; //刪除list的第一個元素 // list中的operator+, -, * 是否也被繼承? ; 測試class list void main list L1, L2, L3 ; for int i 101; i 108; i++ L1.insert L1.getSize ,i ; for int j 110; j 105; j-- L2.insert L2.getSize , j ; L1.show “L1 “ ; L2.show “L2 “ ; L3 L1 + L2 ; L3.show “L3 L1+L2 “ ; L3 L1 * L2; L3.show “L3 L1*L2 “ ; L3 L1 – L2; L3.show “L3 L1-L2 “ ; L3.delete 1 ; L3.delete 2 ; L3.show “after 2 delete, L3 “ ; stack s1, s2 ; for int k 1; k 10; k++ if k%3 0 s1.pop ; s1.push k ; s1.show “s1 “ ; s2 s1; s2.show “s2 “ ; 第十章 多型與虛擬函數 Polymorphism Virtual Functions 10-1 衍生類別的指標 10-2 簡介虛擬函數 10-3 虛擬函數的細節 10-4 應用多型 多型 編譯時期多型 靜態多型 function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同function overloading 執行時期多型 或動態多型 如何正確呼叫不同物件的相同名稱的成員函數 ? 利用繼承與多型 衍生類別與基底類別物件間的指定 assignment class base int x ; public: setx int n x n; ; class derived: public base int y ; public:

文档评论(0)

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

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

1亿VIP精品文档

相关文档