Mencapai C#-Style Properties dalam C 11
Dalam C#, properties menyediakan sintaks yang elegan untuk mengakses pembolehubah ahli kelas dengan kaedah getter dan setter . Dalam C 11, tiada persamaan langsung dengan ciri ini. Walau bagaimanapun, dengan beberapa penyelesaian, adalah mungkin untuk mensimulasikan sifat gaya C# dalam C 11.
Menggunakan Kelas Tanpa Nama
Satu pendekatan ialah menggunakan kelas tanpa nama untuk merangkum harta benda. Ini membolehkan anda membuat getter dan setter dalam kelas bersarang sambil menyediakan sintaks mudah untuk mengakses harta dari luar.
<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>
Pengambil dan Penetap Tersuai
Satu lagi pilihan ialah menulis getter dan setter anda sendiri untuk pembolehubah ahli kelas. Pendekatan ini membolehkan anda menyesuaikan getter dan setter mengikut keperluan khusus anda.
<code class="cpp">private: int _foo; public: int getFoo() { return _foo; }; void setFoo(int value) { _foo = value; };</code>
Akses Ahli Kelas Pemegang
Dalam contoh di atas, sifat boleh diakses secara langsung sebagai ahli kelas penutup. Jika anda ingin menggunakan sifat sebagai ahli kelas pemegang, anda boleh melanjutkan kod untuk memasukkan lapisan akses ahli kelas pemegang. Lapisan ini akan menyediakan akses kepada sifat melalui kelas pemegang.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mencipta sifat gaya C# dalam C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!