Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah C 11 Mencapai Sifat Seperti C# dengan Kelas Tidak Dinamakan dan Lambdas?

Bolehkah C 11 Mencapai Sifat Seperti C# dengan Kelas Tidak Dinamakan dan Lambdas?

Susan Sarandon
Susan Sarandonasal
2024-10-28 03:08:02805semak imbas

 Can C  11 Achieve C#-Like Properties with Unnamed Classes and Lambdas?

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!

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