我有void operator+
和operator+=
我該如何重疊它們。我知道如果我在這兩個函數中複製相同的代碼,它將起作用。我更加好奇,有沒有更短的方式,而不需要複製整個代碼?是否有一個捷徑重疊運算符?
回答
你可以實現一個和調用從另一個,我的意思是,你並不真的需要複製該代碼,請記住,
c += 20;
相同
c = c + 20;
所以你+運營商應該代替重複代碼,明智地呼叫超負荷的+ =運營商
不是。傳統智慧建議用相反的方式來調用它,並正確調整參數。 – StoryTeller
嗨! @StoryTeller,感謝您的評論....但我沒有發現好處...你能告訴我更多 –
'foo operator +(foo lhs,foo const&rhs){lhs + = rhs;返回lhs; }'。這是簡短而整潔的,因爲C++ 17非常容易受到複製elision和NRVO的影響。 – StoryTeller
- 1. MASM是否有::運算符?
- 2. 是否有一個很好的Javascript算術加法運算符?
- 3. 是否dwscript支持運算符重載
- 4. Java是否支持運算符重載?
- 5. 是否有可能在字符串上重載〜運算符?
- 6. 是否有重新定義行爲的方法。一個python類的運算符?
- 7. 是否有一個包含NULL值的LIKE運算符?
- 8. 谷歌地方API是否有一個OR運算符?
- 9. 在Matlab中是否有一個splat運算符(或等效)?
- 10. 是否有一個等於減去賦值運算符(= - )
- 11. Ruby ||運算符快捷鍵
- 12. 是否有可能通過重載算術運算符級聯重載提取運算符?
- 13. Twig是否有空合併運算符?
- 14. GQL中是否有OR運算符?
- 15. python是否有轉換運算符?
- 16. VBScript是否有增量運算符
- 17. matlab是否有三元運算符?
- 18. Sass是否有不同的運算符(!=)?
- 19. VBScript是否有增量運算符?
- 20. TypeScript是否有空條件運算符
- 21. Java是否有指數運算符?
- 22. 運算符`!=`是否使用`==`?
- 23. 如果我有運算符T *(),是否需要重載刪除?
- 24. 是否有可能在JS中重新創建「新」運算符?
- 25. 是否有可能在C++中重載運算符關聯性?
- 26. 是否有可能在C中重載運算符?
- 27. 是否有可能重寫Scala中的內置運算符?
- 28. 是否有可能在C++中重載運算符「...」?
- 29. 是否有可能創建一個字符串繞過重構菜單創建常數的捷徑嗎?
- 30. 是否有三元運算符不是某種形式的條件運算符
你真的認爲這是足夠的細節,你有什麼以及爲什麼你不喜歡它? – StoryTeller
給他人打電話 –
@StoryTeller對不起,我不明白你想說什麼。你能詳細說明嗎? – King23