[問題] 想問個關於 enum 的問題

看板C_and_CPP作者 (翠西亞)時間16年前 (2010/01/14 04:01), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
其實這是課本後面的習題,但是我有點混淆: enum {one} x; enum {two} y; x = y; 習題是問說,這個語法在C是可行的,但是在C++是錯的,要解釋原因。 我的想法是說,對C而言,enum 大括號裡面是什麼並不重要, 所以對它來講 x y 都只是含有一個 element 的 enum。 但是對 C++ 來說,它將這兩樣東西視為不同的「物件」, 所以物件裡面元素的名稱不同,就無法 assign 給另一個。 這樣的想法有錯嗎?或是有沒有更好的解釋呢? 謝謝 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.131.226

01/14 04:05, , 1F
我猜是 C 裡 enum 和 int 差不多 C++則是把它真的當enum看
01/14 04:05, 1F

01/14 10:48, , 2F
C++裡的enum定義出來的是一種沒有預設轉型的自定型態...
01/14 10:48, 2F

01/14 12:20, , 3F
2f正解.. qq
01/14 12:20, 3F

01/15 02:44, , 4F
結果看到助教給的答案了,答案是說C++會把enum視為一種
01/15 02:44, 4F

01/15 02:46, , 5F
type constructor,所以x y並不是type equivalence
01/15 02:46, 5F
文章代碼(AID): #1BJYQqBm (C_and_CPP)