如果寫乙個計算器類,實現簡單的加減乘除操作,我們初學者很可能會這麼寫:
#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...