C++圖文并茂輕松進(jìn)階面向?qū)ο?/h1>
更新時(shí)間:2022年04月20日 16:56:10 作者:清風(fēng)自在?流水潺潺
面向?qū)ο笾袑?duì)象是指具體的某一個(gè)事物,這些事物的抽象就是類,類中包含數(shù)據(jù)(成員變量)和動(dòng)作(成員方法),接下來讓我們一起詳細(xì)了解
一、進(jìn)階面向?qū)ο螅ㄉ希?/h2>
面向?qū)ο蟮囊饬x在于
- 將日常生活中習(xí)慣的思維方式引入程序設(shè)計(jì)中
- 將需求中的概念直觀的映射到解決方案中
- 以模塊為中心構(gòu)建可復(fù)用的軟件系統(tǒng)
- 提高軟件產(chǎn)品的可維護(hù)性和可擴(kuò)展性
類和對(duì)象是面向?qū)ο笾械膬蓚€(gè)基本概念
- 類∶指的是一類事物,是一個(gè)抽象的概念
- 對(duì)象∶指的是屬于某個(gè)類的具體實(shí)體
- 類是一種模型,這種模型可以創(chuàng)建出不同的對(duì)象實(shí)體
- 對(duì)象實(shí)體是類模型的一個(gè)具體實(shí)例
注:一個(gè)類可以有很多對(duì)象,而一個(gè)對(duì)象必然屬于某個(gè)類。
生活中的類和對(duì)象


類和對(duì)象的意義
類用于抽象的描述一類事物所特有的屬性和行為
- 如:電腦擁有CPU,內(nèi)存和硬盤,并且可以開機(jī)和運(yùn)行程序
對(duì)象是具體的事物,擁有所屬類中描述的一切屬性和行為
- 如:每一只老虎都有不同的體重,不同食量以及不同的性情
二、小結(jié)(上)
- 面向?qū)ο笫钱?dāng)今軟件開發(fā)中的重要方法
- 類和對(duì)象是面向?qū)ο罄碚撝械幕靖拍?/li>
- 類和對(duì)象均來源于日常生活中
- 每個(gè)類可以有多個(gè)對(duì)象
- 每個(gè)對(duì)象必然屬于某個(gè)類
三、進(jìn)階面向?qū)ο螅ㄏ拢?/h2>
類之間的基本關(guān)系
繼承
- 從已存在類細(xì)分出來的類和原類之間具有繼承關(guān)系( is-a )
- 繼承的類(子類)擁有原類(父類)的所有屬性和行為
組合
- 一些類的存在必須依賴于其它的類,這種關(guān)系叫組合
- 組合的類在某一個(gè)局部上由其它的類組成
類之間的基本關(guān)系 -- 繼承

惠普電腦和蘋果電腦都繼承于電腦,具備電腦的所有特征。
類之間的基本關(guān)系 -- 組合

類的表示法

類的表示法 -- 簡(jiǎn)化

類的表示法 -- 改進(jìn)1

類的表示法 -- 改進(jìn)2

類的表示法 -- 改進(jìn)3

這有點(diǎn)代碼的味道了,那么如何用程序設(shè)計(jì)中的概念描述類的屬性和行為?下面做最終改進(jìn)。
類的表示法 -- 改進(jìn)4

下面把上面表示方法寫成代碼,看看編譯器會(huì)不會(huì)報(bào)錯(cuò)吧。
#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;
}
下面為輸出結(jié)果:

可以看到,編譯器并沒有報(bào)錯(cuò),也就證明面向?qū)ο竽欠N表示方法是可以的。
四、小結(jié)(下)
- 類之間可以存在繼承關(guān)系或組合關(guān)系
- 繼承關(guān)系中子類擁有父類的一切屬性和行為
- 組合關(guān)系是類之間整體和部分的關(guān)系
- 類及類之間的關(guān)系可以有不同的表示法
- 編譯器對(duì)類的表示法有具體的要求
到此這篇關(guān)于C++圖文并茂輕松進(jìn)階面向?qū)ο蟮奈恼戮徒榻B到這了,更多相關(guān)C++面向?qū)ο髢?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
詳解C++?functional庫(kù)中的仿函數(shù)使用方法
仿函數(shù)(functor)又稱之為函數(shù)對(duì)象(function?object),實(shí)際上就是?重載了()操作符?的?struct或class。本文將詳細(xì)講解C++中仿函數(shù)的使用方法,需要的可以參考一下 2022-04-04
-
C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯(cuò)誤的解決方法
這篇文章主要介紹了C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下 2018-03-03
-
VisualStudio類文件的管理(類文件的分離)的實(shí)現(xiàn)
在使用?Visual?Studio?開發(fā)項(xiàng)目的時(shí)候,學(xué)會(huì)進(jìn)行“類文件的分離”十分重要,本文主要介紹了VisualStudio類文件的管理(類文件的分離)的實(shí)現(xiàn),感興趣的可以了解一下 2024-03-03
-
詳解C語(yǔ)言中freopen()函數(shù)和fclose()函數(shù)的用法
這篇文章主要介紹了詳解C語(yǔ)言中freopen()函數(shù)和fclose()函數(shù)的用法,是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下 2015-08-08
-
C++實(shí)現(xiàn)LeetCode(557.翻轉(zhuǎn)字符串中的單詞之三)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(557.翻轉(zhuǎn)字符串中的單詞之三),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下 2021-08-08
-
C語(yǔ)言線程對(duì)象和線程存儲(chǔ)的實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言線程對(duì)象和線程存儲(chǔ)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2021-03-03
最新評(píng)論
一、進(jìn)階面向?qū)ο螅ㄉ希?/h2>
面向?qū)ο蟮囊饬x在于
- 將日常生活中習(xí)慣的思維方式引入程序設(shè)計(jì)中
- 將需求中的概念直觀的映射到解決方案中
- 以模塊為中心構(gòu)建可復(fù)用的軟件系統(tǒng)
- 提高軟件產(chǎn)品的可維護(hù)性和可擴(kuò)展性
類和對(duì)象是面向?qū)ο笾械膬蓚€(gè)基本概念
- 類∶指的是一類事物,是一個(gè)抽象的概念
- 對(duì)象∶指的是屬于某個(gè)類的具體實(shí)體
- 類是一種模型,這種模型可以創(chuàng)建出不同的對(duì)象實(shí)體
- 對(duì)象實(shí)體是類模型的一個(gè)具體實(shí)例
注:一個(gè)類可以有很多對(duì)象,而一個(gè)對(duì)象必然屬于某個(gè)類。
生活中的類和對(duì)象
類和對(duì)象的意義
類用于抽象的描述一類事物所特有的屬性和行為
- 如:電腦擁有CPU,內(nèi)存和硬盤,并且可以開機(jī)和運(yùn)行程序
對(duì)象是具體的事物,擁有所屬類中描述的一切屬性和行為
- 如:每一只老虎都有不同的體重,不同食量以及不同的性情
二、小結(jié)(上)
- 面向?qū)ο笫钱?dāng)今軟件開發(fā)中的重要方法
- 類和對(duì)象是面向?qū)ο罄碚撝械幕靖拍?/li>
- 類和對(duì)象均來源于日常生活中
- 每個(gè)類可以有多個(gè)對(duì)象
- 每個(gè)對(duì)象必然屬于某個(gè)類
三、進(jìn)階面向?qū)ο螅ㄏ拢?/h2>
類之間的基本關(guān)系
繼承
- 從已存在類細(xì)分出來的類和原類之間具有繼承關(guān)系( is-a )
- 繼承的類(子類)擁有原類(父類)的所有屬性和行為
組合
- 一些類的存在必須依賴于其它的類,這種關(guān)系叫組合
- 組合的類在某一個(gè)局部上由其它的類組成
類之間的基本關(guān)系 -- 繼承
惠普電腦和蘋果電腦都繼承于電腦,具備電腦的所有特征。
類之間的基本關(guān)系 -- 組合
類的表示法
類的表示法 -- 簡(jiǎn)化
類的表示法 -- 改進(jìn)1
類的表示法 -- 改進(jìn)2
類的表示法 -- 改進(jìn)3
這有點(diǎn)代碼的味道了,那么如何用程序設(shè)計(jì)中的概念描述類的屬性和行為?下面做最終改進(jìn)。
類的表示法 -- 改進(jìn)4
下面把上面表示方法寫成代碼,看看編譯器會(huì)不會(huì)報(bào)錯(cuò)吧。
#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; }
下面為輸出結(jié)果:
可以看到,編譯器并沒有報(bào)錯(cuò),也就證明面向?qū)ο竽欠N表示方法是可以的。
四、小結(jié)(下)
- 類之間可以存在繼承關(guān)系或組合關(guān)系
- 繼承關(guān)系中子類擁有父類的一切屬性和行為
- 組合關(guān)系是類之間整體和部分的關(guān)系
- 類及類之間的關(guān)系可以有不同的表示法
- 編譯器對(duì)類的表示法有具體的要求
到此這篇關(guān)于C++圖文并茂輕松進(jìn)階面向?qū)ο蟮奈恼戮徒榻B到這了,更多相關(guān)C++面向?qū)ο髢?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C++?functional庫(kù)中的仿函數(shù)使用方法
仿函數(shù)(functor)又稱之為函數(shù)對(duì)象(function?object),實(shí)際上就是?重載了()操作符?的?struct或class。本文將詳細(xì)講解C++中仿函數(shù)的使用方法,需要的可以參考一下2022-04-04C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯(cuò)誤的解決方法
這篇文章主要介紹了C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03VisualStudio類文件的管理(類文件的分離)的實(shí)現(xiàn)
在使用?Visual?Studio?開發(fā)項(xiàng)目的時(shí)候,學(xué)會(huì)進(jìn)行“類文件的分離”十分重要,本文主要介紹了VisualStudio類文件的管理(類文件的分離)的實(shí)現(xiàn),感興趣的可以了解一下2024-03-03詳解C語(yǔ)言中freopen()函數(shù)和fclose()函數(shù)的用法
這篇文章主要介紹了詳解C語(yǔ)言中freopen()函數(shù)和fclose()函數(shù)的用法,是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08C++實(shí)現(xiàn)LeetCode(557.翻轉(zhuǎn)字符串中的單詞之三)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(557.翻轉(zhuǎn)字符串中的單詞之三),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08C語(yǔ)言線程對(duì)象和線程存儲(chǔ)的實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言線程對(duì)象和線程存儲(chǔ)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03