C++ ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pembangunan sistem, pembangunan permainan, pertandingan algoritma dan bidang lain. Walau bagaimanapun, disebabkan sintaksnya yang kompleks dan ciri-ciri ralat, pelbagai ralat sering berlaku dalam pengaturcaraan C++ Salah satu ralat yang lebih biasa ialah ralat "nilai lalai ahli mesti disediakan pada masa pengisytiharan".
Sebab ralat ini ialah C++ menetapkan bahawa pembolehubah ahli mesti memberikan nilai lalai dalam definisi kelas. Kadangkala semasa proses menulis kod, anda terlupa untuk menentukan nilai lalai untuk pembolehubah ahli, atau memberikan nilai kepada pembolehubah ahli dalam pembina, tetapi tidak memberikan nilai lalai dalam definisi kelas.
Di sini kami memperkenalkan beberapa kaedah pemprosesan biasa:
Cara paling langsung ialah memberikan nilai lalai pembolehubah ahli dalam takrifan kelas, seperti ditunjukkan di bawah:
class MyClass { public: int myInt = 0; // 成员变量的默认值在声明时提供 };
Jika anda tidak boleh memberikan nilai lalai dalam takrif kelas, anda boleh memulakan pembolehubah ahli dalam pembina kelas, seperti yang ditunjukkan di bawah:
class MyClass { public: MyClass() : myInt(0) {} // 在构造函数中初始化成员变量 private: int myInt; };
Ini boleh memastikan pembolehubah ahli mempunyai nilai lalai yang jelas dan mengelakkan ralat Penyusunan.
Jika pembolehubah ahli kelas tidak boleh dimulakan secara lalai, anda boleh mengelakkan masalah nilai lalai pembolehubah ahli dengan memadamkan pembina lalai. Contohnya:
class MyClass { public: MyClass(int x) : myInt(x) {} // 非默认构造函数 private: int myInt; };
Dengan memadamkan pembina lalai, pengkompil tidak boleh menjana pembina lalai secara automatik dan tidak akan ada masalah dengan nilai lalai pembolehubah ahli.
Di atas adalah beberapa cara biasa untuk menangani ralat "Nilai lalai ahli mesti disediakan pada masa pengisytiharan". Perlu diingatkan bahawa untuk mengelakkan ralat seperti ini, adalah lebih baik untuk menentukan nilai lalai untuk semua pembolehubah ahli semasa menentukan kelas.
Atas ialah kandungan terperinci Ralat sintaks C++: Nilai lalai ahli mesti disediakan pada masa pengisytiharan Bagaimana untuk menanganinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!