Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Sifat Boleh Dilaksanakan dalam C 11 Menggunakan 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!