看板 C_and_CPP 關於我們 聯絡資訊
如題, 請問我同一個函數要回傳一個字串或是一個數值, 那該函數要設甚麼形態呢?? 新手發問,感謝回答 ※ 編輯: a77d4e06 來自: 140.112.4.191 (05/10 21:05)
VictorTom:應該不行吧?? 不能一開始就分成兩個函數去call嗎?? 05/10 21:09
VictorTom:一個變則的方式是, 回傳一個struct, 裡面包含字串與數字 05/10 21:10
VictorTom:的型態, 讓caller端檢查固定某個欄位來分辨應該拿字串還 05/10 21:11
VictorTom:是拿數字的資料; 其實理論上calling time就要能區分會回 05/10 21:11
adrianshum:如果是 "或", 可以順便學學 union 05/10 21:11
VictorTom:來的是字串還是數字, 不然caller端你也根本沒辦法收@_@" 05/10 21:12
maplefog:struct裡再多設一個變數 0時讀數字 1讀字串 應該可以 05/10 21:13
VictorTom:有道理, 順便學著用 union 一起上....:D 05/10 21:13
a77d4e06:小弟我想回傳的是一個getAccout函數,如果餘額是正的 05/10 21:16
a77d4e06:那就回傳餘額,如果是負的就回傳餘額不足字串 05/10 21:16
VictorTom:通常這種事在caller收到負值時再印餘額不足字串就行吧@@ 05/10 21:18
freesamael:那應該是回傳負數由client處理,或直接throw exception 05/10 21:19
VictorTom:另一個方法, 餘額正值的也回成字串, 這樣就都是字串了XD 05/10 21:19
a77d4e06:那請問INT形態怎麼換成STRING@@? 05/10 21:20
maplefog:if(value<0) cout<<餘額不足;else cout<< value; 05/10 21:24
dendrobium:是不是應該重新考慮一下你的設計...@@a 05/10 21:28
yayarice:這樣設計你要用甚麼變數去存那個回傳值? 05/10 21:31
x000032001:要讓函數單純化阿 搞的很複雜@@ 05/10 21:44
lvlightvivi:void* 回傳之後再CAST? 不過都要用指標 05/10 21:53
loveme00835:弄一個父類別然後再用RTTI來做好像也可以 XD 05/10 22:22
loveflames:用template? 05/10 23:06
cloudlim:好奇template +1 @@" 這種情況不能用template嗎? 05/10 23:47
loveme00835:原po是想要"同一個函式"喔, 用模版並不是同一個函式 05/11 00:32
loveme00835:模板寫下去就讓呼叫的方式不同了~ XD 05/11 00:33
loveflames:看起來像同一個就好了(逃 05/11 01:18
tinlans:struct 包 type code 欄位 + union,很傳統的解法。 05/11 01:30