[問題] comma operator(,)關於operator overloading

看板C_and_CPP作者 (好好的生活)時間16年前 (2009/12/27 23:51), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 這是在C++ How to Program螞蟻本第五版中的一段話 p569的第一行中間開始 正在講address operator(&)與comma operator(,)的operator overloading "The comma operator evaluate the expression to its left then the expression to its right." 請問這段話在講comma operator什麼事情,字都看得懂,卻不明白它的意義? 若以下面來做例子 int a,b,c,*d,&e; 是不是有關係 可以請高手回答一下嗎? 希望得到的正確結果:程式跑出來的錯誤結果:開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev C++ 有問題的code: (請善用置底文標色功能) -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.88.49

12/27 23:57, , 1F
comma operator會回傳右邊的值 ex. (2,3)會回傳3
12/27 23:57, 1F

12/28 00:00, , 2F
oops, 這段的解釋應該是comma operator是先evaluate
12/28 00:00, 2F

12/28 00:01, , 3F
","左邊的expression,接著evaluate右邊的
12/28 00:01, 3F

12/28 17:02, , 4F
你的例子那個不算 comma operator
12/28 17:02, 4F

12/28 17:05, , 5F
(我是指原PO用在宣告時隔開變數的那個不算)
12/28 17:05, 5F

12/28 17:51, , 6F
會循序執行, 從左到右, 回傳最後一個敘述的值
12/28 17:51, 6F

12/28 17:51, , 7F
C++ Gochas 還是 effectve C++ 剛好有談到
12/28 17:51, 7F

12/28 17:57, , 8F
文章代碼(AID): #1BDu9f10 (C_and_CPP)