Maison >développement back-end >C++ >Erreur C++ : Le constructeur doit être déclaré dans l'espace public, comment y faire face ?

Erreur C++ : Le constructeur doit être déclaré dans l'espace public, comment y faire face ?

王林
王林original
2023-08-21 20:26:462046parcourir

En programmation C++, le constructeur est une fonction importante utilisée pour initialiser les variables membres d'une classe. Il est automatiquement appelé lors de la création d'un objet pour garantir une initialisation correcte de l'objet. Le constructeur doit être déclaré dans la classe, mais vous rencontrerez parfois le message d'erreur « Le constructeur doit être déclaré dans la zone publique ».

Cette erreur est généralement causée par un modificateur d'accès incorrect du constructeur. En C++, les variables membres et les fonctions membres d'une classe ont un modificateur d'accès, notamment public, privé et protégé. Public signifie que le membre est accessible à l'intérieur et à l'extérieur de la classe, private signifie qu'il n'est accessible qu'à l'intérieur de la classe et protected signifie qu'il n'est accessible qu'à l'intérieur de la classe et de ses classes dérivées.

Dans la définition de la classe, si le modificateur d'accès déclaré par le constructeur n'est pas public, le compilateur affichera un message d'erreur "Le constructeur doit être déclaré dans la zone publique". Par conséquent, pour résoudre ce problème, il vous suffit de modifier le modificateur d'accès du constructeur en public.

Ce qui suit est un exemple de code :

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

Dans le code ci-dessus, le constructeur est défini comme une fonction membre publique de la classe, afin qu'il puisse être consulté et appelé en dehors de la classe. Si l'accessibilité du constructeur est définie sur privée ou protégée, un message d'erreur "Le constructeur doit être déclaré dans la zone publique" sera affiché.

En plus de changer l'autorisation d'accès du constructeur en public, nous pouvons également utiliser l'abréviation d'autorisation d'accès dans la définition de la classe :

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

De cette façon, nous pouvons omettre les mots-clés privés et publics et définir le constructeur sur public en défaut.

En bref, lorsque vous rencontrez l'erreur "Le constructeur doit être déclaré dans la zone publique", vous devez d'abord vérifier si le modificateur d'accès du constructeur est public, et suivre les règles de droits d'accès du C++ pour vous assurer que les variables membres et les membres de la classe Functions sont accessibles et appelés correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn