[問題] C++運算子多載的問題

看板C_and_CPP (C/C++)作者 (LiLo)時間16年前 (2010/01/28 08:35), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/1
這是程式碼↓ http://nopaste.csie.org/d395e 想要問的是 在main中打入 win1 > win2 是以win2為引數傳入operator>裡 可是operator卻只有回傳值 return (this-> area() > win.area()); 這樣寫法不就是回傳win1的面積(也就是this->area())大於win2嗎 那如果win2比win1大, 為什麼就能夠成功跑出 win2 is larger than win1。 呢ˇ 感謝各位ˇ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.26.94

01/28 10:32, , 1F
return (this-> area() > win.area());
01/28 10:32, 1F
※ 編輯: p221071889 來自: 60.244.26.94 (01/28 10:34)

01/28 10:35, , 2F
這一句是回傳判斷後的結果,成功回傳1,失敗回傳0
01/28 10:35, 2F

01/28 10:39, , 3F
好像懂了耶,謝謝
01/28 10:39, 3F

01/28 10:40, , 4F
只要有小於或大於其中一個, 與判斷等於或不等於的實作,
01/28 10:40, 4F

01/28 10:41, , 5F
就可以湊出>,<,==,!=,>=,<=所有組合了不是嗎@_@"
01/28 10:41, 5F

01/28 10:42, , 6F
試試看你現在這樣的實作win1與win2相等會輸出啥吧XD
01/28 10:42, 6F

01/28 10:43, , 7F
剛才注意到code....orz 就是2F說的那樣啦:)
01/28 10:43, 7F

01/28 10:47, , 8F
V大說的也沒錯,這個程式少了判斷等於這個情況
01/28 10:47, 8F

01/28 10:54, , 9F
嗯嗯謝謝啦ˇ
01/28 10:54, 9F

01/28 14:09, , 10F
如果這個大小關係符合三一律的話 那其實只要 > 或 < 就夠了
01/28 14:09, 10F
文章代碼(AID): #1BODl7FI (C_and_CPP)
文章代碼(AID): #1BODl7FI (C_and_CPP)