C 多型應用的小案例(計算器)

2021-10-06 16:32:21 字數 1290 閱讀 1300

如果寫乙個計算器類,實現簡單的加減乘除操作,我們初學者很可能會這麼寫:

#include

using

namespace std;

class

calculator

void

setv2

(int v)

intgetresult

(string oper)

else

if(oper ==

"-")

}private

:int val1;

int val2;};

void

test01()

但是這麼寫有個麻煩的地方是如果我們要增加操作,比如增加與或等,則我們就要修改原**,在getresult函式內增添我們要新增的操作。

在真正的開發中,有個開發原則叫開閉原則,對擴充套件開放 對修改關閉,下面我們用多型來實現下計算器類:

#include

using

namespace std;

class

abstractcalculator

;//純虛函式

//如果父類中有了 純虛函式 子類繼承父類,就必須要實現 純虛函式

//如果父類中 有了 純虛函式 ,這個父類 就無法例項化物件了

//這個類有了純虛函式,通常又稱為 抽象類

virtual

intgetresult()

=0;void

setv1

(int v)

void

setv2

(int v)

public

:int val1;

int val2;};

//如果父類中有了 純虛函式 子類繼承父類,就必須要實現 純虛函式

classa:

public abstractcalculator};

//加法計算器

class

pluscalculator

:public abstractcalculator;}

;class

subcalculator

:public abstractcalculator;}

;class

multiplicationcalculator

:public abstractcalculator;}

;void

test01()

intmain()

學習筆記 多型案例 計算器類

案例描述 多型的優點 多型實現 抽象計算器類 多型優點 組織結構清晰,可讀性強,利於前期和後期的擴充套件以及維護 class abstractcalculator int m num1 int m num2 加法計算器 class addcalculator public abstractcalcu...

C 多型例項 計算器

include using namespace std class calculator void stev2 int v2 為私有屬性賦值的介面 int getresult string oper else if oper 操作 private int value1 int value2 void...

vue簡易計算器小案例09

邏輯部分沒有完全實現,主要用來練手,加強理解父子元件之間的通訊過程。效果 簡易計算器 counter.html lang en charset utf 8 元件通訊之簡易計算器小案例title rel stylesheet href counter.css head info 結果為 h1 cbtn...