Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Fehler: Der Konstruktor muss im öffentlichen Bereich deklariert werden, wie gehe ich damit um?

C++-Fehler: Der Konstruktor muss im öffentlichen Bereich deklariert werden, wie gehe ich damit um?

王林
王林Original
2023-08-21 20:26:461779Durchsuche

In der C++-Programmierung ist der Konstruktor eine wichtige Funktion, die zum Initialisieren der Mitgliedsvariablen einer Klasse verwendet wird. Es wird automatisch aufgerufen, wenn ein Objekt erstellt wird, um eine ordnungsgemäße Initialisierung des Objekts sicherzustellen. Der Konstruktor muss in der Klasse deklariert werden, aber manchmal wird die Fehlermeldung „Der Konstruktor muss im öffentlichen Bereich deklariert werden“ angezeigt.

Dieser Fehler wird normalerweise durch einen falschen Zugriffsmodifikator des Konstruktors verursacht. In C++ verfügen Mitgliedsvariablen und Mitgliedsfunktionen einer Klasse über einen Zugriffsmodifikator, einschließlich public, private und protected. Öffentlich bedeutet, dass auf das Mitglied innerhalb und außerhalb der Klasse zugegriffen werden kann, privat bedeutet, dass nur innerhalb der Klasse darauf zugegriffen werden kann, und geschützt bedeutet, dass nur innerhalb der Klasse und ihrer abgeleiteten Klassen auf das Mitglied zugegriffen werden kann.

Wenn in der Definition der Klasse der vom Konstruktor deklarierte Zugriffsmodifikator nicht öffentlich ist, zeigt der Compiler die Fehlermeldung „Der Konstruktor muss im öffentlichen Bereich deklariert werden“ an. Um dieses Problem zu lösen, müssen Sie daher nur den Zugriffsmodifikator des Konstruktors in „öffentlich“ ändern.

Das Folgende ist ein Beispielcode:

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;
}

Im obigen Code ist der Konstruktor als öffentliche Mitgliedsfunktion der Klasse definiert, sodass auf ihn außerhalb der Klasse zugegriffen und dieser aufgerufen werden kann. Wenn die Zugänglichkeit des Konstruktors auf „privat“ oder „geschützt“ eingestellt ist, wird die Fehlermeldung „Der Konstruktor muss im öffentlichen Bereich deklariert werden“ angezeigt.

Zusätzlich zur Änderung der Zugriffsberechtigung des Konstruktors auf öffentlich können wir in der Definition der Klasse auch die Abkürzung für die Zugriffsberechtigung verwenden:

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;
  }
};

Auf diese Weise können wir die Schlüsselwörter private und public weglassen und den Konstruktor auf öffentlich setzen Standard.

Kurz gesagt, wenn Sie auf den Fehler „Der Konstruktor muss im öffentlichen Bereich deklariert werden“ stoßen, sollten Sie zunächst prüfen, ob der Zugriffsmodifikator des Konstruktors öffentlich ist, und die Zugriffsrechteregeln von C++ befolgen, um sicherzustellen, dass die Mitgliedsvariablen und auf Mitglieder der Klasse Funktionen kann korrekt zugegriffen und diese aufgerufen werden.

Das obige ist der detaillierte Inhalt vonC++-Fehler: Der Konstruktor muss im öffentlichen Bereich deklariert werden, wie gehe ich damit um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn