看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Win11 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VS2022 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) n/a 問題(Question): 使用operator改寫物件相加的行為 但同一行只要超過兩個物件就會fail ex. obj+obj -> pass obj+obj+obj -> fail 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 錯誤 C2678 二元運算子 '+': 找不到使用左方運算元類型 'Fraction' 的運算子 (或是沒有可接受的轉換) 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://ideone.com/j1Ad9p 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.193.197 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1689813176.A.0A2.html
school4303: 加const? 你的operater+的參數都改成const Fraction& 07/20 09:14
CppGod: 加了const就可以了! 想請教原因~ 07/20 10:02
jack7775kimo: 當你想要做p1+p2+p3這種連加時,p1+p2會產生暫時物件 07/20 11:09
jheli: operator最好都要加const來修飾 07/20 12:02
Dracarys: 相加expression是prvalue 07/20 12:43
Dracarys: Non-const lvalue reference cannot bind to a prvalue 07/20 13:06
CppGod: 謝謝D大 謝謝大家的解答! 07/21 05:44