Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memulakan Medan `const` dalam C Constructors?

Bagaimana untuk Memulakan Medan `const` dalam C Constructors?

DDD
DDDasal
2024-11-02 21:19:03597semak imbas

How to Initialize `const` Fields in C   Constructors?

Memulakan Medan Konst dalam Pembina

Pertimbangkan senario di mana Bar kelas C memerlukan penuding Foo dan berhasrat untuk memastikan ia tidak berubah sepanjang kitaran hayatnya . Bagaimanakah ini harus dilaksanakan?

Pada mulanya, ia mungkin kelihatan mudah untuk memulakan medan const dalam pembina, seperti yang ditunjukkan di bawah:

<code class="cpp">class Foo;

class Bar {
public:
    Foo * const foo;
    Bar(Foo* foo) {
        this->foo = foo;
    }
};

class Foo {
public:
  int a;
};</code>

Walau bagaimanapun, pendekatan ini gagal untuk disusun. Penyelesaiannya terletak pada penggunaan senarai pemula:

<code class="cpp">Bar(Foo* _foo) : foo(_foo) {
}</code>

Perhatikan bahawa pembolehubah masuk telah dinamakan semula untuk mengelakkan konflik penamaan. Senarai pemula ini memulakan medan const pada permulaan pembina, memastikan kebolehubahannya.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Medan `const` dalam C Constructors?. 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