在C 程式設計中,建構子是用來初始化類別的成員變數的重要函數。它在創建物件時自動調用,以確保物件的正確初始化。建構子必須在類別中聲明,但是有時會遇到錯誤提示「建構子必須在public區域宣告」。
這個錯誤通常是因為建構子的存取權限修飾符錯誤所造成的。在C 中,類別的成員變數和成員函數都有一個存取權限修飾符,包括public、private和protected。 public表示該成員可以在類別內外被訪問,private表示只能在類別內部訪問,而protected表示只能在類別內及其衍生類別中存取。
在類別的定義中,如果建構函式宣告的存取權限修飾符不是public,編譯器就會出現「建構函式必須在public區域宣告」的報錯資訊。因此,要解決這個問題,只需要將建構函式的存取權修飾符修改為public即可。
下面是一個範例程式碼:
class Student { private: string name; int age; public: Student(string n, int a) { name = n; age = a; } void display() { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } }; int main() { Student s("Tom", 18); s.display(); return 0; }
在上面的程式碼中,建構函式被定義為類別的一個public成員函數,這樣就可以被在類別外部存取和呼叫。如果將建構函式的可存取性設定為private或protected,則會提示「建構子必須在public區域宣告」的錯誤。
除了將建構子的存取權限修改為public,我們還可以在類別的定義中使用存取權限縮寫:
class Student { string name; int age; public: Student(string n, int a) { name = n; age = a; } void display() { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } };
這樣就可以省略private和public的關鍵字,並將建構函數預設為public。
總之,當遇到「建構子必須在public區域宣告」的錯誤時,應該先檢查建構子的存取權修飾符是否為public,並且遵循C 的存取權規則,以確保類別的成員變數和成員函數可以正確存取和呼叫。
以上是C++報錯:建構子必須在public區域聲明,怎麼處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!