Maison >développement back-end >C++ >Pourquoi ne puis-je pas déclarer les classes C imbriquées en dehors de leur conteneur ?
Déclaration directe des classes imbriquées
En C , la déclaration directe des classes imbriquées en dehors de leur conteneur n'est pas possible. Le compilateur nécessite une définition complète de la classe imbriquée dans la portée qui la contient.
Supposons que vous ayez une classe avec une classe imbriquée :
class Container { public: class Iterator { // ... }; // ... };
Tentative de transmettre la déclaration Container::Iterator dans un autre le fichier d'en-tête entraînera des erreurs de compilation :
class Container::Iterator; class Foo { void Read(Container::Iterator& it); };
Raisons de Restriction
Le compilateur doit connaître la structure complète d'une classe, y compris les classes imbriquées, avant de pouvoir générer du code. La déclaration Forward d'une classe imbriquée en dehors de son conteneur rompt cette dépendance.
Options de solution de contournement
Pour contourner cette restriction, vous disposez de plusieurs options :
En suivant ces directives, vous pouvez assurez-vous que votre code se compile avec succès lors de la déclaration des classes imbriquées.
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!