Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Sifat Boleh Dilaksanakan dalam C 11 Menggunakan Syntax Sugar?

Bagaimanakah Sifat Boleh Dilaksanakan dalam C 11 Menggunakan Syntax Sugar?

Barbara Streisand
Barbara Streisandasal
2024-10-27 21:07:30381semak imbas

How Can Properties be Implemented in C  11 Using Syntax Sugar?

Sifat dalam C 11

C#:

<code class="csharp">public Foo foo { get; private set; }</code>

C :

<code class="cpp">private:
    Foo foo;
public:
    Foo getFoo() { return foo; }</code>

Gula Sintaks C 11

C 11 tidak menyediakan gula sintaks langsung untuk sifat, tetapi anda boleh menentukan sendiri. Menggunakan kelas yang tidak dinamakan, anda boleh mencipta struktur seperti berikut:

<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>

Struktur ini membolehkan anda mengakses ahli seperti sifat:

<code class="cpp">Foo foo;

foo.alpha = 10; // Equivalent to foo.setAlpha(10)
int i = foo.alpha; // Equivalent to foo.getAlpha()</code>

Anda boleh menyesuaikan pelaksanaan ini lagi dengan menambah pengambil dan kaedah penetap serta memanjangkan struktur untuk menyokong akses ahli kelas.

Atas ialah kandungan terperinci Bagaimanakah Sifat Boleh Dilaksanakan dalam C 11 Menggunakan Syntax Sugar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn