C 11: Sifat Seperti C#?
Sintaks C# membenarkan pengambil dan penetap medan ringkas. C 11 memperkenalkan kelas bernama dan lambda, menawarkan penyelesaian yang serupa.
Melaksanakan C# Properties dalam C 11
Untuk meniru sifat C# dalam C 11, anda boleh menggunakan kelas tanpa nama dan fungsi akses ahli. Pertimbangkan pelaksanaan berikut:
<code class="cpp">struct Foo { struct { int value; auto &operator=(const int &i) -> decltype(auto) { return value = i; } auto operator()() const -> decltype(auto) { return value; } } alpha; struct { float value; auto &operator=(const float &f) -> decltype(auto) { return value = f; } auto operator()() const -> decltype(auto) { return value; } } bravo; };</code>
Contoh Penggunaan
<code class="cpp">Foo foo; foo.alpha = 10; cout << foo.alpha() << endl;</code>
Pendekatan ini menyediakan sintaks seperti C# untuk mendapatkan dan menetapkan sifat dengan nama yang dijana secara automatik.
Atas ialah kandungan terperinci Bolehkah C 11 Mencapai Sifat Seperti C# dengan Kelas Tidak Dinamakan dan Lambdas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!