老規矩–妹妹鎮樓:
開發思想:開閉原則,對拓展開放,對修改關閉。
多型優點:利於後期拓展,結構性好,可讀性強。
多型缺點:效率偏低,結構中增加了指標,複雜了一點。
如果是用之前的定義乙個類,在類中定義各種計算函式,那麼在需要拓展時,就得修改類中的某些函式,以達到拓展的目的。但是,開發中忌諱修改之前的**,以免造成其他錯誤的產生。因此,要用多型的思想,拓展功能,避免修改之前的**。
下面用乙個計算器案例來說明多型思想的優勢:
首先,我們定義了父類 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 ...