Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Senarai Permulaan Ahli Berfungsi dalam C Constructors and Inheritance?

Bagaimanakah Senarai Permulaan Ahli Berfungsi dalam C Constructors and Inheritance?

Patricia Arquette
Patricia Arquetteasal
2024-11-27 20:04:14975semak imbas

How Do Member Initialization Lists Work in C   Constructors and Inheritance?

Senarai Permulaan Ahli dalam Pembina

Dalam C , pembina boleh memulakan ahli data menggunakan senarai permulaan ahli. Senarai ini muncul selepas nama pembina, dipisahkan dengan titik bertindih (:).

Senarai Permulaan Warisan dan Ahli

Senarai permulaan ahli juga boleh digunakan untuk memanggil pangkalan pembina kelas. Dalam kod yang disediakan:

class demo 
{
public:
    demo(unsigned char le = 5, unsigned char default) : len(le) 
    { 
        ...
    }
};
class newdemo : public demo 
{
public:
    newdemo(void) : demo(0, 0)
    {
        ...
    }
};

demo(0, 0) dalam pembina newdemo memanggil pembina demo kelas asasnya dengan hujah 0 dan 0, memulakan ahli len.

Penggunaan Umum Senarai Permulaan Ahli

Di luar warisan, senarai permulaan ahli membenarkan untuk:

Pemulaan Ahli Data Sebelum Badan Pembina:

Ahli yang bukan const boleh dimulakan dalam senarai permulaan sebelum pembina badan melaksanakan. Ini memastikan bahawa ahli dimulakan tanpa mengira aliran pembina.

Pemulaan Ahli Data Const:

Ahli data Const hanya boleh dimulakan dalam pengisytiharan mereka atau dengan permulaan ahli senarai.

Contoh:

class MyClass
{
public:
    MyClass(int value) : value(value) // Initialize const member in initialization list
    { 
        ...
    }
private:
    const int value;
};

Atas ialah kandungan terperinci Bagaimanakah Senarai Permulaan Ahli Berfungsi dalam C Constructors and Inheritance?. 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