Tengo una clase que solo realmente necesitan las clases en una cierta jerarquía de clases. Quería saber si es posible anidar la clase en la sección protegida de la clase más alta y hacer que todas las otras clases la hereden automáticamente.¿Puede haber protegido clases anidadas en C++?
Respuesta
"Heredar" es la palabra incorrecta para usar, ya que tiene una definición muy específica en C++ que no quiere decir, pero sí puede hacerlo. Esto es legal:
class A {
protected:
class Nested { };
};
class B : public A {
private:
Nested n;
};
Y el código que no está en A o algo que se deriva de A no puede acceder o crear una instancia de A :: Nested.
Hmm ¿Qué sucede si la clase B proporciona un método de acceso para Anidado n? Probablemente un error de compilación? – Kieveli
En realidad, no. Al declarar métodos de B, la búsqueda de nombres también ocurre en el alcance de la clase B. Y en el alcance B, A :: Anidado está accesible. Por lo tanto, A :: Anidado & B :: Get_n() está bien. – MSalters
Hm, estás en lo cierto. A :: Anidado está accesible ya que B puede devolver un A :: anidado de una función pública. B aún no es instanciable, por lo que resulta interesante que la persona que llama no tenga permitido almacenar el valor de retorno de B :: Get_n(). –
- 1. C++ clases anidadas Conduciéndome loco
- 2. C# Serialización de clases anidadas
- 3. .NET XmlSerializer y clases anidadas en C#
- 4. C++ clases anidadas error declaración adelantada
- 5. métodos de interfaz no puede haber protegidas
- 6. Clases privadas anidadas
- 7. Lambda con clases anidadas
- 8. clases anidadas: El acceso a miembro protegido de la clase envolvente de una clase anidada protegida
- 9. clases anidadas selectores
- 10. Assembly.GetTypes() para clases anidadas
- 11. Reflexión para clases anidadas
- 12. ¿Puede haber funciones independientes en C# sin una clase?
- 13. importar clases anidadas al espacio de nombres - C++
- 14. En clases anidadas de Java, ¿puede la clase adjunta acceder a miembros privados de clases internas?
- 15. ¿Debo usar clases anidadas en este caso?
- 16. Clases anidadas "públicas" o no
- 17. Plantillas y clases/estructuras anidadas
- 18. ¿Usar clases anidadas para constantes?
- 19. ¿Cómo cargar clases anidadas en Java?
- 20. Poner clases anidadas en archivos separados
- 21. ¿Puedes tener clases anidadas en PHP?
- 22. C# acceso protegido campo
- 23. Cómo diseñar clases de plantilla anidadas donde las clases anidadas son del mismo tipo
- 24. ¿Cuántos bordes puede haber en un DAG?
- 25. Puede haber pérdida de memoria en Java
- 26. XSD generación de clases tablas anidadas problema
- 27. Declarar clases anidadas antes de ser definidas
- 28. ¿Dónde y cómo usar clases anidadas?
- 29. ¿Por qué F # no admite clases anidadas?
- 30. PHP Las clases anidadas funcionan ... ¿algo así?
¡Deberías probarlo! No parece demasiado difícil obtener una prueba de concepto ... – jpoh