C 學習筆記(十八) 之用多型的思想實現計算器

2021-10-08 05:03:04 字數 1292 閱讀 8120

老規矩–妹妹鎮樓:

開發思想:開閉原則,對拓展開放,對修改關閉。

多型優點:利於後期拓展,結構性好,可讀性強。

多型缺點:效率偏低,結構中增加了指標,複雜了一點。

如果是用之前的定義乙個類,在類中定義各種計算函式,那麼在需要拓展時,就得修改類中的某些函式,以達到拓展的目的。但是,開發中忌諱修改之前的**,以免造成其他錯誤的產生。因此,要用多型的思想,拓展功能,避免修改之前的**。

下面用乙個計算器案例來說明多型思想的優勢:

首先,我們定義了父類 abstractcalculator,在其中定義了虛函式getresult()。

之後,定義了子類加法計算器類 pluscalculator,繼承父類 abstractcalculator。同時,其中還定義了 函式 getresult(),計算兩個數之和。

之後,功能擴充套件,要新增減法計算器時,直接增加乙個減法計算器類,同樣繼承父類abstractcalculator,定義函式 getresult(),計算兩數之差。

當我們呼叫子類的getresult時,它就通過多型指向了子類的getresult(),並實現相應的功能。

不需要修改之前的**,直接新增乙個子類,繼承了父類的成員和函式,並通過多型將父類函式getreult()指向了子類自己的getresult()。

#define _crt_secure_no_warnings

#include

using

namespace std;

class

abstractcalculator

void

setv1

(int v)

void

setv2

(int v)

public

:int val1;

int val2;};

//加法計算器

class

pluscalculator

:public abstractcalculator};

//減法計算器

class

subcalculator

:public abstractcalculator};

void

test()

intmain()

C 學習筆記之多型 多型的學習 多型學習

c 學習筆記之多型 多型的學習 多型學習 多型分為兩類 靜態多型 函式過載和運算子過載屬於靜態多型,復用函式名 動態多型 派生類和虛函式實現執行時多型 靜態多型和動態多型的區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式位址 動態多型滿足條件 動態多型...

C 學習筆記 多型

引言 1.虛繼承 如果乙個派生類從多個基類派生,而這些基類又有乙個共同的基類,則在對該基類中宣告的名字進行訪問時,可能產生二義性。解決方案 虛繼承宣告,加乙個virtual 關鍵字 2.物件導向新需求 編譯器的做法不是我們期望的 如果用父類指標指向子類物件,再呼叫print 方法,均會呼叫父類中的p...

C 多型學習筆記

看了一堆介紹多型的東西,腦子裡就記得幾個概念了。靜態多型,又叫早繫結,動態多型,應該是叫晚繫結。多型的價值在於使程式更簡潔 更高效。no virtual no 多型,virtual means 已多型。不要覺得問題 很沒用 你還就是說不出來。同樣的命令,不同的物件,做出不同的動作。這就得借助the ...