C++ 프로그래밍에서 생성자는 클래스의 멤버 변수를 초기화하는 데 사용되는 중요한 함수입니다. 객체의 적절한 초기화를 보장하기 위해 객체가 생성될 때 자동으로 호출됩니다. 생성자는 클래스에서 선언해야 하지만, 가끔 "생성자는 공개 영역에 선언해야 합니다."라는 오류 메시지가 나타나는 경우가 있습니다.
이 오류는 일반적으로 생성자의 잘못된 액세스 수정자로 인해 발생합니다. C++에서 클래스의 멤버 변수와 멤버 함수에는 public, private 및 protected를 포함한 액세스 한정자가 있습니다. Public은 클래스 내부 및 외부에서 멤버에 액세스할 수 있음을 의미하고, Private은 클래스 내에서만 액세스할 수 있음을 의미하며, Protect는 클래스 및 해당 파생 클래스 내에서만 액세스할 수 있음을 의미합니다.
클래스 정의에서 생성자가 선언한 액세스 한정자가 공개가 아닌 경우 컴파일러는 "생성자는 공개 영역에서 선언되어야 합니다"라는 오류 메시지를 표시합니다. 따라서 이 문제를 해결하려면 생성자의 액세스 한정자를 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; }
위 코드에서 생성자는 클래스의 공개 멤버 함수로 정의되어 있어 클래스 외부에서도 접근 및 호출이 가능합니다. 생성자의 접근성이 private 또는 protected로 설정된 경우 "생성자는 공용 영역에서 선언되어야 합니다."라는 오류 메시지가 표시됩니다.
생성자의 액세스 권한을 공개로 변경하는 것 외에도 클래스 정의에 액세스 권한 약어를 사용할 수도 있습니다.
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; } };
이 방법으로 비공개 및 공개 키워드를 생략하고 생성자를 공개로 설정할 수 있습니다. 기본.
간단히 말하면 "생성자는 공개 영역에서 선언되어야 합니다"라는 오류가 발생하면 먼저 생성자의 액세스 한정자가 공개인지 확인하고 C++의 액세스 권한 규칙을 따라 멤버 변수가 Functions 클래스의 멤버는 올바르게 액세스하고 호출할 수 있습니다.
위 내용은 C++ 오류: 생성자는 공개 영역에서 선언되어야 합니다. 어떻게 처리해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!