[問題] template型態不同的辨識方法

看板C_and_CPP (C/C++)作者 (永恆的真實)時間14年前 (2012/06/11 14:13), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) g++ 問題(Question): 我想寫一個副程式,然後回傳的type是定義成template 傳進去的資料可能是double或是class class名稱為Fraction,member有整數、分子、分母。 Fraction的operator + - * / 皆定義好了 但是在副程式的運算過程中, 需要再定義正負號(sign)和 answer(初始值為0, double 0, Fraction(0,0,1) 整數0分子0分母1 ) 可是這兩種型態無法寫在同一個表示式裡... EX: 在double時 T answer=0; T sign=1; 在class Fraction時 T answer(0,0,1); T sign(1,0,1); 這兩種不同的表達方式,我不知道該如何把它們寫在同個副程式中... 還是, 有辦法判斷傳進副程式的type是double or class Fraction嗎??? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.28.56

06/11 14:50, , 1F
把那個副程式也寫成template再加template specialization?
06/11 14:50, 1F

06/11 15:16, , 2F
template function不能用T不是嗎?
06/11 15:16, 2F

06/11 16:37, , 3F
原來回傳能用T喔...因為我記得之前有一篇在討論
06/11 16:37, 3F

06/11 16:37, , 4F
return用T忘了那一篇...
06/11 16:37, 4F

06/11 17:48, , 5F
"判斷傳進副程式的type" : class typeof, 通常副函式會一
06/11 17:48, 5F

06/11 17:48, , 6F
一判斷,代表設計可能哪裡出了點問題。
06/11 17:48, 6F
※ 編輯: towaomami 來自: 140.114.28.56 (06/11 19:33)
文章代碼(AID): #1FrOoRcX (C_and_CPP)
文章代碼(AID): #1FrOoRcX (C_and_CPP)