首頁 >後端開發 >C++ >如何避免 C 中的常數和非常量成員函數出現重複的 getter?

如何避免 C 中的常數和非常量成員函數出現重複的 getter?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-02 11:42:16329瀏覽

How Can I Avoid Duplicate Getters for Const and Non-Const Member Functions in C  ?

常數和非常量物件重複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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn