首頁 > 軟體

C++圖文並茂輕鬆進階物件導向

2022-04-20 13:00:36

一、進階物件導向(上)

物件導向的意義在於

  • 將日常生活中習慣的思維方式引入程式設計中
  • 將需求中的概念直觀的對映到解決方案中
  • 以模組為中心構建可複用的軟體系統
  • 提高軟體產品的可維護性和可延伸性

類和物件是物件導向中的兩個基本概念

  • 類∶指的是一類事物,是一個抽象的概念
  • 物件∶指的是屬於某個類的具體實體
  • 類是一種模型,這種模型可以建立出不同的物件實體
  • 物件實體是類模型的一個具體範例

注:一個類可以有很多物件,而一個物件必然屬於某個類。

生活中的類和物件

類和物件的意義

類用於抽象的描述一類事物所特有的屬性和行為

  • 如:電腦擁有CPU,記憶體和硬碟,並且可以開機和執行程式

物件是具體的事物,擁有所屬類中描述的一切屬性和行為

  • 如:每一隻老虎都有不同的體重,不同食量以及不同的性情

二、小結(上)

  • 物件導向是當今軟體開發中的重要方法
  • 類和物件是物件導向理論中的基本概念
  • 類和物件均來源於日常生活中
  • 每個類可以有多個物件
  • 每個物件必然屬於某個類

三、進階物件導向(下)

類之間的基本關係

繼承

  • 從已存在類細分出來的類和原類之間具有繼承關係( is-a )
  • 繼承的類(子類)擁有原類(父類別)的所有屬性和行為

組合

  • 一些類的存在必須依賴於其它的類,這種關係叫組合
  • 組合的類在某一個區域性上由其它的類組成

類之間的基本關係 -- 繼承

惠普電腦和蘋果電腦都繼承於電腦,具備電腦的所有特徵。

類之間的基本關係 -- 組合

類的表示法

類的表示法 -- 簡化

類的表示法 -- 改進1

類的表示法 -- 改進2

類的表示法 -- 改進3

這有點程式碼的味道了,那麼如何用程式設計中的概念描述類的屬性和行為?下面做最終改進。

類的表示法 -- 改進4

下面把上面表示方法寫成程式碼,看看編譯器會不會報錯吧。

#include <stdio.h>
 
struct Biology {
    bool living;
};
 
struct Animal : Biology {
    bool movable;
    void findFood() { }
};
 
struct Plant : Biology {
    bool growable;
};
 
struct Beast : Animal {
    void sleep() { }
};
 
struct Human : Animal {
    void sleep() { }
    void work() { }
};

int main()
{
    return 0;
}

下面為輸出結果:

可以看到,編譯器並沒有報錯,也就證明物件導向那種表示方法是可以的。

四、小結(下)

  • 類之間可以存在繼承關係或組合關係
  • 繼承關係中子類擁有父類別的一切屬性和行為
  • 組合關係是類之間整體和部分的關係
  • 類及類之間的關係可以有不同的表示法
  • 編譯器對類的表示法有具體的要求

到此這篇關於C++圖文並茂輕鬆進階物件導向的文章就介紹到這了,更多相關C++物件導向內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com