""MyMessageBox ne nomme pas de type" Erreur en C
Cette erreur se produit lorsqu'une classe tente d'utiliser une autre classe qui ne l'a pas fait été défini au préalable. Dans le code donné, la classe User déclare une variable membre nommée dataMsgBox, qui est cependant une instance de la classe MyMessageBox. compilation, MyMessageBox n'a pas encore été définie, ce qui entraîne l'erreur.
Pour résoudre ce problème, nous utilisons une forward déclaration Nous déclarons la classe User sans la définir au préalable, ce qui permet à MyMessageBox de faire référence. même sans sa définition complète. La séquence de définitions doit alors être inversée, avec MyMessageBox défini avant User.
class User; // Forward declaration of User class MyMessageBox { public: void sendMessage(Message *msg, User *recvr); Message receiveMessage(); vector<Message *>& dataMessageList; }; class User { public: MyMessageBox dataMsgBox; };
Alternativement, au lieu de passer des pointeurs, pensez à passer des références pour éviter les valeurs nulles :
class MyMessageBox { public: void sendMessage(const Message& msg, User& recvr); Message receiveMessage(); vector<Message *>& dataMessageList; };
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!