Rumah >pembangunan bahagian belakang >C++ >Ralat C++: Ahli data bukan statik mesti dimulakan, bagaimana untuk mengubah suainya?

Ralat C++: Ahli data bukan statik mesti dimulakan, bagaimana untuk mengubah suainya?

PHPz
PHPzasal
2023-08-22 17:45:131257semak imbas

Ralat C++: Ahli data bukan statik mesti dimulakan, bagaimana untuk mengubah suainya?

Dalam pengaturcaraan C++, apabila kita mentakrifkan ahli data bukan statik kelas, jika mereka tidak dimulakan dalam senarai pembina atau permulaan, ralat berikut akan berlaku: ahli data bukan statik mesti dimulakan, ini Ini akan menyebabkan pengkompil tidak dapat memperuntukkan ruang memori untuk ahli dan dengan itu gagal membuat instantiate kelas.

Untuk menyelesaikan masalah ini, kita boleh mengambil langkah berikut:

1 Mulakan pembolehubah ahli dalam pembina

Jika kita tidak memulakan pembolehubah ahli semasa mentakrifkan kelas, kita boleh memulakannya dalam pembina, dan ini. pendekatan lebih fleksibel dalam beberapa kes. Contohnya:

class Person{
public:
    Person() {
        age = 18;
        name = "Tom";
    }

private:
    int age;
    string name;
};

Dalam kod di atas, kami tidak memulakan pembolehubah umur dan nama ahli semasa mentakrifkan kelas Orang, tetapi memulakannya dalam pembina. Perlu diingatkan bahawa jika terdapat berbilang pembina dalam kelas, semua pembina perlu memulakan pembolehubah ahli.

2. Mulakan dalam senarai permulaan ahli

Dalam C++, senarai permulaan ahli ialah kaedah yang digunakan untuk memulakan pembolehubah ahli bukan statik kelas. Pembolehubah ahli bukan statik dalam kelas boleh dimulakan dengan cepat dan jelas dengan menambah titik bertindih selepas nama pembina dan menetapkan pembolehubah ahli dan ungkapan permulaannya dalam senarai permulaan ahli selepas pembina. Contohnya:

class Person{
public:
    Person(): age(18), name("Tom"){}

private:
    int age;
    string name;
};

Dalam kod di atas, kami menggunakan senarai permulaan ahli untuk memulakan pembolehubah umur dan namakan ahli.

Perlu diingatkan bahawa jika jenis pembolehubah ahli adalah jenis yang ditentukan pengguna, anda perlu memastikan bahawa jenis tersebut mempunyai pembina lalai. Jika tidak, pengkompil tidak akan dapat mencari pembina yang sesuai apabila memulakan menggunakan senarai permulaan ahli.

Ringkasan

C++ menghendaki ahli data bukan statik kelas mesti dimulakan semasa mentakrifkannya, jika tidak akan terdapat ralat bahawa ahli data bukan statik mesti dimulakan. Untuk menyelesaikan masalah ini, kita boleh memulakan pembolehubah ahli dalam pembina atau menggunakan senarai permulaan ahli untuk memulakannya. Sama ada cara, pastikan semua pembolehubah ahli dimulakan.

Atas ialah kandungan terperinci Ralat C++: Ahli data bukan statik mesti dimulakan, bagaimana untuk mengubah suainya?. 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