Rumah > pembangunan bahagian belakang > C++ > Apakah Susunan Permulaan Ahli Data Bukan Statik dalam Kelas C?

Apakah Susunan Permulaan Ahli Data Bukan Statik dalam Kelas C?

Mary-Kate Olsen
Lepaskan: 2024-12-18 15:12:14
asal
451 orang telah melayarinya

What's the Initialization Order of Non-Static Data Members in C   Classes?

Tertib Permulaan Ahli Data Bukan Statik dalam C

Apabila mencipta contoh baharu kelas dengan ahli data bukan statik, tertib di mana ia dimulakan adalah penting untuk pembinaan objek yang betul.

Dalam senario ini, mari kita pertimbangkan perkara berikut kod:

class A {};
class B {};
class X
{
    A a;
    B b;
};
Salin selepas log masuk

Persoalannya timbul: apabila pembina kelas X dipanggil, pembina (A atau B) yang manakah dipanggil dahulu? Adakah kedudukan mereka dalam definisi kelas menentukan susunan?

Menurut Piawaian C, seksyen 12.6.2, susunan permulaan adalah seperti berikut:

  • Pertama, kelas asas maya ialah dimulakan (tidak berkenaan dalam kes ini).
  • Kelas asas langsung dimulakan dalam susunan pengisytiharan (juga tidak berkenaan di sini).
  • Ahli data bukan statik dimulakan mengikut susunan yang muncul dalam definisi kelas.
  • Akhir sekali, badan pembina dilaksanakan.

Oleh itu, dalam kod yang disediakan, ahli data bukan statik a dan b dimulakan dalam susunan ia diisytiharkan, iaitu yang pertama diikuti dengan b. Pembina A akan dipanggil sebelum pembina B.

Ringkasnya, susunan pemula untuk ahli data bukan statik ditentukan oleh susunan pengisytiharan mereka dalam definisi kelas, bukan oleh penempatan mereka dalam pembina badan.

Atas ialah kandungan terperinci Apakah Susunan Permulaan Ahli Data Bukan Statik dalam Kelas C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan