Permulaan Ahli Data Const: Panduan Komprehensif
Pengenalan:
Memahami permulaan ahli data tetap dalam C boleh membingungkan. Artikel ini bertujuan untuk menjelaskan aspek ini dengan menangani ralat biasa dan memberikan penjelasan terperinci tentang proses tersebut.
Ralat Ditemui:
Pertimbangkan coretan kod berikut:
#include <iostream> using namespace std; class T1 { const int t = 100; public: T1() { cout << "T1 constructor: " << t << endl; } };
Apabila cuba untuk memulakan const data ahli t dalam pembina kelas, perkara berikut ralat berlaku:
test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static
Memahami Ralat:
Ralat berpunca daripada sekatan bahasa C yang tidak membenarkan pengamulaan ahli data const dalam definisi kelas. Ini kerana pembolehubah const memerlukan definisi unik, yang tidak boleh dijamin apabila disertakan dalam berbilang unit terjemahan.
Cara Memulakan Ahli Data Const:
Untuk memulakan const ahli data, ia mesti ditakrifkan di luar definisi kelas. Ini boleh dicapai melalui senarai pemula kelas:
T1() : t(100) {}
Dalam senarai pemula, t diberikan nilai 100 sebelum pemulaan kelas berlaku. Ini memastikan bahawa ahli data const dimulakan semasa penciptaan objek.
Kesimpulan:
Memulakan ahli data const memerlukan pematuhan kepada peraturan bahasa tertentu. Dengan mentakrifkannya di luar definisi kelas dan menggunakan senarai pemula, pengaturcara boleh memulakan ahli data const dengan berkesan dan mengelakkan ralat yang disebutkan di atas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Ahli Data Malar dengan betul dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!