看板 C_and_CPP 關於我們 聯絡資訊
原文恕刪 可以像幾位大大推文說的用結構把type code包起來, 另一個要包的 是union型態, 內含int 或是 char array 以下程式碼提供原po做參考 : http://nopaste.info/fbe75aa4d5.html 這樣應該比我說的用RTTI簡單得多 XD ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115
tropical72:寫得比我好多了, 感覺我的連幼幼班都不到, 推一個!! 05/11 03:07
dogberter:同班推~XD 05/11 03:37
tinlans:可以用 enum 代替 int。 05/11 04:57
QQ29:請問為啥要用union 而這樣 不是設定了int string就壞了嗎 05/11 13:30
QQ29:喔沒有壞@@只是為啥要union不是很懂 05/11 13:32
VictorTom:省空間阿, 他這個用法不是int就是string, 所以另外一個 05/11 13:35
VictorTom:不會同時用到, 至少可以省個sizeof(int)的空間XD 05/11 13:35
QQ29:但為啥我把這段code改成string的 卻啥都不讓我輸入 跟c不熟.. 05/11 13:36
QQ29:應該說我同時 int 在 string 輸入完int後程式就結束了... 05/11 13:37
QQ29:http://nopaste.csie.org/532b4 這段為啥輸入int後就關了? 05/11 13:40
loveme00835:因為緩衝區裡面還有'\n' 05/11 13:42
loveme00835:'\n'直接讀進string當作字串了 05/11 13:44
QQ29:請問哪裡來的\n阿?? 如果改成先string在int就ok耶 不太懂 05/11 13:47
loveme00835:你輸入完整數按下的enter, 就讀入'\n' 05/11 13:48
VictorTom:#1BCFyc8h 類似的問題吧@_@" 05/11 13:51
QQ29:那反過來 string先輸入 就沒這問題 是為什麼呀 05/11 13:52
VictorTom:\n不會被int吃掉, 但是可以被string吃掉啊.... 05/11 13:54
loveme00835:因為'\n'放在string的最後面, 你可以試試看, 不過就算 05/11 13:54
loveme00835:第二句跟v大一樣 > < 05/11 13:55
QQ29:那在問一下那個MAX =20 為啥不用define故意用enum 用意是? 05/11 13:59
QQ29:還有sizeof(ObjectType) 為啥是4阿? 05/11 13:59
loveme00835:因為define 的常數通常是有一些編譯的前處理要用的, 05/11 14:01
loveme00835:像是切換型別的定義等等, 不是專門用來定義數值常數 05/11 14:02
loveme00835:ObjectType 底層還是轉換成 int 來實作 05/11 14:03
QQ29:可是 為啥不是8...不是有兩個嗎@@ 還是他只是個type@@y 05/11 14:05
loveme00835:INTEGER、STRING列舉子是說一個 ObjectType 變數能夠 05/11 14:07
loveme00835:擁有的值是這些(多選一), 跟struct不太一樣喔@@ 05/11 14:07
VictorTom:你可能要查一下enum是怎麼算sizeof的....@_@" 05/11 14:11
VictorTom:不過 MAX_STRING_LENGTH 小弟我的確會考慮用 #define XD 05/11 14:11
QQ29:http://nopaste.csie.org/38a97 這印多少呢... 05/11 14:16
QQ29:有規定說sizeof 一定要非0嗎 因為我sizeof一個空class也都會 05/11 14:17
QQ29:=1.....該怎解釋呀 05/11 14:17
james732:記得是為了避免讓兩個不同的 class 有同樣的位置 05/11 14:18
loveme00835:想一下: sizeof 回傳如果是零, & 取值該怎麼取呢? 05/11 16:06
QQ29:請問love大 什麼&取值~~ 是指什麼意思 05/11 16:45
loveme00835:如果我用 QQ *p = new QQ[ 2 ]; 如果sizeof(QQ) 回傳 05/11 17:18
loveme00835:是0, 那麼&p[0]跟&p[1]結果就會跟james大講的 → 一樣 05/11 17:19
loveme00835:p[0] p[1]反而是同一個物件了 05/11 17:20
james732:Inside the c++ object model 有探討這類的問題 05/11 17:21
kingofsdtw:好棒的解法Q_Q! 05/11 20:20
fish076:推 厲害! 05/12 16:41