所以,我只是通過返回* this指針來調用級聯成員函數調用。我明白了它是如何機械地工作的,但它看起來像是在實現函數時花費大量時間,以獲得使用點運算符對一個線路鏈函數調用的較小能力。我相信除了簡單地縮短成員函數調用之外,還有其他一些好處,但實際上沒有關於這個主題的很多信息。谷歌的前幾頁只提供了關於如何實現級聯函數調用的說明,而沒有提到爲什麼,如何或在何處使用這種技術。任何人都有一些有用的鏈接可能會涵蓋更深入的主題?謝謝。使用級聯成員函數會帶來什麼好處
2
A
回答
4
當操作鏈接有意義時,好處是該類用戶的外觀更好看。例如:
rect.left(10).top(5).right(50).bottom(40);
這可能是更好的閱讀比任:
// longer code
rect.left(10);
rect.top(5);
rect.right(50);
rect.bottom(40);
或者:
// reader should remember order of parameters
rect.move_to(10, 5, 50, 40);
1
- 養眼代碼
- 大量的方便分配物品(Boost Assign library)
有時,非常難得我想,但我看到了這樣的使用(一般在單元測試):
- 它增加了一定的靈活性與結構物體(你不必遵循的參數順序或添加大量重載構造)
- 是方便的表示邏輯
OR
(例如用於設置標誌)
相關問題
- 1. 使用cURL而不是Fiddler會帶來什麼好處?
- 2. 爲什麼使用const成員函數?
- 3. 爲什麼boost推薦使用核心函數來使用成員函數?
- 4. 使用類型來表示函數有什麼好處?
- 5. 添加一個空字符串會帶來什麼好處嗎?
- 6. 內聯函數調用有什麼好處?
- 7. 調用成員函數bindParam()什麼?
- 8. 會員數據庫有什麼更好?
- 9. 爲什麼調用模板成員函數會出錯?
- 10. 使用成員函數來處理在堆(C++)
- 11. 道具爲阿卡的演員創造帶來了什麼好處?
- 12. 會發生什麼成員
- 13. 爲什麼C#數組是協變的,它帶來了什麼好處?
- 14. 使用郵遞員寶石比使用ActionMailer有什麼好處?
- 15. Python函數註釋有什麼好處?
- 16. 函數參考有什麼好處?
- 17. 爲什麼is_lock_free是成員函數?
- 18. 爲什麼成員函數返回零
- 19. 什麼是非靜態成員函數?
- 20. 成員的函數定義是什麼?
- 21. 爲什麼我們不能在靜態成員函數中使用const成員?
- 22. 是更好地使用Convert.ToInt32 「0」 級聯()函數調用
- 23. 會話每會話有什麼好處?
- 24. 爲python類使用「獲取函數」有什麼好處?
- 25. 在php中使用匿名函數有什麼好處?
- 26. 使用拷貝構造函數有什麼好處?
- 27. 在CPP中創建抽象類而不是基類會帶來什麼好處?
- 28. 當涉及到MSIL反編譯時,SecureString會給我帶來什麼好處嗎?
- 29. 爲什麼const成員函數能夠通過成員指針調用非const成員函數?
- 30. 爲什麼要使用非成員函數?
不,就是這樣,真的。更簡單的鏈接。 –
投票結束的人:這不是一個合適的問題? –
你不需要在你所有的功能上做到這一點。但是有一些功能可以將呼叫連鎖起來。 – Wyzard