J'ai une classe dont les classes n'ont vraiment besoin que dans une certaine hiérarchie de classes. Je voulais savoir s'il est possible d'imbriquer la classe dans la section protégée de la classe supérieure et que toutes les autres classes l'héritent automatiquement?Pouvez-vous avoir des classes imbriquées protégées en C++?
Répondre
"Hériter" est un mauvais mot à utiliser car il a une définition très spécifique en C++ que vous ne voulez pas dire, mais oui vous pouvez le faire. C'est légal:
class A {
protected:
class Nested { };
};
class B : public A {
private:
Nested n;
};
et le code qui n'est pas A ou quelque chose qui dérive d'un ne peut pas accéder ou instancier A :: emboîtés.
Hmm Que se passe-t-il si la classe B fournit une méthode d'accès pour Nested n? Probablement une erreur de compilation? – Kieveli
En fait, non. Lors de la déclaration des méthodes de B, la recherche de noms a également lieu dans la portée de la classe B. Et dans la portée B, A :: Nested est accessible. Par conséquent, A :: Nested & B :: Get_n() est OK. – MSalters
Hm, vous avez raison. A :: Nested est accessible car B peut retourner un A :: Nested à partir d'une fonction publique. B ce n'est pas encore instanciable, donc de façon intéressante cela conduit à la situation où l'appelant n'est pas autorisé à stocker la valeur de retour de B :: Get_n(). –
- 1. Pouvez-vous avoir des classes imbriquées en PHP?
- 2. Classes protégées dans .NET
- 3. méthodes "protégées" en C#?
- 4. Comment les méthodes protégées de java.lang.Object sont-elles protégées des sous-classes?
- 5. Comment initialiser des structures imbriquées en C++?
- 6. Classes imbriquées "publiques" ou non
- 7. déclaration avant de types/classes imbriquées dans C++
- 8. Comment modéliser correctement les classes imbriquées/sous-classes dans UML?
- 9. classes imbriquées dans des fonctions et des attributs de recherche
- 10. signatures JNI pour les classes imbriquées?
- 11. Comment puis-je avoir des références entre deux classes en Objective-C?
- 12. Transactions de base de données imbriquées en C#
- 13. C# Listes typographiques imbriquées
- 14. iPhone/Objective C structures imbriquées C
- 15. Pages protégées dans MediaWiki
- 16. Puis-je avoir des blocs try-catch imbriqués en C++?
- 17. Comment lire les données pour les classes imbriquées?
- 18. Pour utiliser des collections génériques imbriquées ou des classes intermédiaires personnalisées?
- 19. Classes imbriquées avec le même nom dans des assemblages distincts provoquant des céphalées de sérialisation
- 20. Utilisation des grilles sous/imbriquées
- 21. Avoir des problèmes dans les interfaces C#
- 22. Des classes dynamiquement instables en Objective-C, possibles?
- 23. Classes génériques avec des champs statiques partagés en C#
- 24. Surcharge des constantes dans les classes dérivées en C#
- 25. Quelle connaissance en C# devrais-je avoir?
- 26. Comment puis-je créer mon propre compilateur C++ comprendre les modèles, les classes imbriquées, etc. caractéristiques de C++?
- 27. C# Gestion des exceptions dans les classes
- 28. Simple C# Question: Imbrication des classes, accessibilité
- 29. Stockage des classes personnalisées dans Objective-C
- 30. C# obtenir des détails de sous-classes
Vous devriez l'essayer! Cela ne semble pas trop difficile de trouver une preuve de concept ... – jpoh