首頁 > 後端開發 > C++ > 主體

如何在 C 11 中建立 C# 風格的屬性?

Mary-Kate Olsen
發布: 2024-10-29 12:40:02
原創
391 人瀏覽過

How can I create C#-style properties in C  11?

在C 11 實現C# 風格的屬性

在C# 中,屬性提供了一種優雅的語法,用於使用getter和setter 方法存取類別成員變數。在 C 11 中,沒有與此功能直接等效的功能。但是,透過一些解決方法,可以在 C 11 中模擬 C# 樣式的屬性。

使用未命名類別

一種方法是使用未命名類別來封裝特性。這允許您在嵌套類別中建立 getter 和 setter,同時提供從外部存取屬性的簡單語法。

<code class="cpp">struct Foo
{
    class {
        int value;
        public:
            int & operator = (const int &i) { return value = i; }
            operator int () const { return value; }
    } alpha;

    class {
        float value;
        public:
            float & operator = (const float &f) { return value = f; }
            operator float () const { return value; }
    } bravo;
};</code>
登入後複製

自訂 Getter 和 Setter

另一個選項是為類別成員變數撰寫自己的 getter 和 setter。這種方法可讓您根據您的特定需求自訂 getter 和 setter。

<code class="cpp">private:
    int _foo;
public:
    int getFoo() { return _foo; };
    void setFoo(int value) { _foo = value; };</code>
登入後複製

Holder 類別成員存取

在上面的範例中,可以直接存取屬性作為封閉類別的成員。如果要將屬性用作持有者類別的成員,則可以擴充程式碼以包含持有者類別成員存取層。此層將透過持有者類別提供對屬性的存取。

以上是如何在 C 11 中建立 C# 風格的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!