Re: [問題] 關於物件導向的三個特色
※ 引述《flydragon198 (阿凡達要看3D的)》之銘言:
: 而多型,也是為了方便,例如你寫了一個把數值丟進去就可以相乘的函式
: 而乘法,可能有兩個數相乘,或三個數相乘,或四個數相乘
: 或者浮點數乘整數,整數乘整數,浮點數乘浮點數
: 你可以寫
: 乘法1(int , float)
: 乘法2(float,float,int)
: .......寫一堆
: 然後在main裡面又用一堆判斷式來判斷要呼叫哪個 乘法X()
: 或者利用多型,雖然還是要寫一堆 乘法()
: 但是在main裡面,會自動幫你依據函式簽名而決定呼叫哪一個乘法()
: 例如
: 乘法(int , float)
: 乘法(float,float,int)
: 你在main裡面寫乘法(a,b,c)
: 他自動會幫你呼叫乘法(float,float,int),因為引數有三個
: 你不用寫程式去判斷要呼叫乘法1()還是乘法2()
: 寫乘法(d,e)
: 他會自動幫你呼叫乘法(int , float),因為引數兩個
: 當然如果你要寫程式自己判斷呼叫哪個乘法X,那也沒有錯
小的不常來 只是路過XD 借用這個例子野人獻曝一下..
像這個例子可能有人會說那不就要寫一大堆乘法function
但是這就是C++ template (我承認我不知道java或是其他語言的這類東西怎麼寫)
所可以提供的好處
舉例(語法搞不好有錯XD)
template <class T1, class T2, class T3>
T3 乘法(T1 a, T2 b){
return a*b;
}
這樣寫出來的function 可以讓你不管用什麼型態去呼叫都可以正常作乘法
甚至可以透過typeid偵測不同的型態在其中的某小部份作不同處理
我覺得物件導向的優點在於可以很有彈性 然後把很多苦工讓程式來做
我念資工系的 很多人都說寫程式就是copy and paste
但是極致的物件導向應該是期望做到不要有任何重複的程式碼
而是大量增加程式碼重用(被呼叫)的程度
這點在程序導向的設計其實也有(模組化) 但是物件導向更加強這點罷了
↑
話雖如此 還是許多人連簡單的模組化都不肯 硬要複製貼上= =
--
以上是個人看法 我不是物件導向專家什麼的 不過滿有興趣的就是了XDDD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.96.185
推
01/19 08:16, , 1F
01/19 08:16, 1F
推
01/20 04:09, , 2F
01/20 04:09, 2F
推
01/21 20:57, , 3F
01/21 20:57, 3F
討論串 (同標題文章)