物件基本概念.ppt

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

深入淺出MFC 第二章 C++的重要性質 Index 類別及其成員-談封裝(encapsulation) 基礎類別與衍生類別-談繼承(Inheritance) This指標 虛擬函式與多型(Polymorphism) 類別與物件大解剖 Object slicing與虛擬函式 靜態程式(變數與函式) C++ 程式的生與死:兼談建構式與解構式 四種不同的物件生存方式 所謂的“Unwinding” 執行時期型別資訊(RTT1) 動態生成(Dynamic Creating) 異常處理(Exception Handling) Template 物件的屬性 任何實體的東西都可以說是物件 物件屬性的兩大成員 資料 property, field, data member, member variable成員變數 行為 method, member function成員函式 Example-Csquare 宣告變數與使用 Example-Csquare (cont’) 對Csquare物件的描述: Example-Csquare (cont’) 修飾詞 Private 外界不能使用 member variable public 外界可以使用 method setcolor m_color不能直接被外界使用 定義一個public的method來設定Csquare的顏色 Index 類別及其成員-談封裝(encapsulation) 基礎類別與衍生類別-談繼承(Inheritance) This指標 虛擬函式與多型(Polymorphism) 類別與物件大解剖 Object slicing與虛擬函式 靜態程式(變數與函式) C++ 程式的生與死:兼談建構式與解構式 四種不同的物件生存方式 所謂的“Unwinding” 執行時期型別資訊(RTT1) 動態生成(Dynamic Creating) 異常處理(Exception Handling) Template 何謂繼承 基礎類別(base class) 衍生類別(derived class) Example #0001 class CShape // 形狀 #0002 { #0003 private: #0004 int m_color; #0005 #0006 public: #0007 void setcolor(int color) { m_color = color; } #0008 }; #0009 #0010 class CRect : public CShape // 矩形是一種形狀 #0011 { // 它會繼承m_color 和setcolor() #0012 public: #0013 void display() { ... } #0014 }; Example(cont’) #0028 class CSquare : public CRect // 四方形是一種矩形 #0029 #0030 public: #0031 void display() { ... } #0032 }; Example(cont’) CSquare square; //宣告一個矩形名為square CRect rect1, rect2; //宣告兩個四方形 CCircle circle; square.setcolor(1); // 令 square.m_color = 1 rect1.setcolor(2); // 於是 rect1.m_color = 2 rect1.display(); // 呼叫 CRect::display rect2.setcolor(3); // 於是 rect2.m_color = 3 rect2.display(); // 呼叫 CRect::display circle.setcolor(4); // 於是 circle.m_color = 4 circle.display(); // 呼叫 CCircle::display Facts Questions 1 類別都由CShape 衍生而來 都自然而然繼承了CShape 的成員,包括變數和函式。 也就是說,所有類別都暗自具備了m_color 變數和 setcolor 函式 Facts Questions 2 兩個矩形物件 rect1 和 rect2 各有自己的 m_color setcolor 函式卻是共用相同的 CRect::setcolor (其實應該說是CShape::setcolor) 同一個函式如何處理不同的資料? this 指標。 Facts Questions 3 把display提昇到老祖宗 CShape 去,然後再一起繼承? 不好 因為 di

文档评论(0)

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

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

1亿VIP精品文档

相关文档