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

PHPz
Lepaskan: 2023-08-22 17:45:13
asal
1226 orang telah melayarinya

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;
};
Salin selepas log masuk

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;
};
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan