常數和非常量物件重複getter 的優雅解決方案
在處理C 中的getter 時,開發人員經常遇到這樣的困境:為const 和非const 版本建立單獨的實作。當兩個 getter 的邏輯非常相似時,這可能會很不方便。
此問題的一個潛在解決方案是透過丟棄 const 版本中的 const 來實現非 const 版本。這種方法被認為是安全的,因為呼叫函數是非常量的,這意味著物件本身是非常量的,允許轉換。
例如:
class Foo { public: const int& get() const { //non-trivial work return foo; } int& get() { return const_cast<int&>(const_cast<const Foo*>(this)->get()); } };
這種方法可能不美觀,但它保證了安全性,並且在許多情況下避免了單獨實現的需要。它允許開發人員專注於 getter 的核心功能,而不是重複程式碼。
以上是如何避免 C 中的常數和非常量成員函數出現重複的 getter?的詳細內容。更多資訊請關注PHP中文網其他相關文章!