si incluyo el archivo de definición de clase classA.h en classB.h y classC.h, entonces si classD.h incluye ambos classB.h y classC.h, ¿habrá una redefinición de clase?¿Habrá una redefinición de clase si una clase se incluye indirectamente a través de dos archivos de inclusión?
5
A
Respuesta
5
Siempre que use correctamente include guards, esto no debería ser un problema. En particular, si se asegura de que #include
-el mismo archivo dos veces es idempotente (#include
-siguiendo el mismo encabezado dos veces es lo mismo que #include
-solo una vez), entonces esto no causará ningún problema. Cuando classD.h
incluye classB.h
, incluirá classA.h
. Cuando intente incluir classC.h
y classC.h
intenta incluir classA.h
, entonces no ocurre nada. Esto está bien, sin embargo, porque classC.h
puede ver classA.h
porque ya estaba incluido.
Cuestiones relacionadas
- 1. La clase individual tiene un error de redefinición de clase
- 2. Clase de inclusión vs Clase declarante
- 3. ¿Cómo se incluye una clase UX en el patrón MVC?
- 4. Cómo eliminar una acción agregada a través de una clase
- 5. ¿Qué archivo de clase java se llamará si la misma clase está empaquetada en dos archivos jar?
- 6. Listando los métodos de una clase a través de mixin
- 7. Por qué no habrá una clase derivada de una clase abstracta con una cláusula where echó a su nivel más bajo de clase común
- 8. Devolver una clase C++ a Java a través de JNI
- 9. Determinando si se hace referencia a una clase C#
- 10. Cómo saber si una clase desciende de otra clase
- 11. OO Design - El objeto hace una pregunta a la clase que lo mantiene indirectamente
- 12. Identificador único numérico de una clase a través de typeid
- 13. Loop a través de miembros constantes de una clase
- 14. Establecer propiedades de una clase solo a través del constructor
- 15. evento Pass de la clase C a través de la clase B a la clase A
- 16. ¿Cómo determinar programáticamente si la clase es una clase de caso o una clase simple?
- 17. ¿Debería acceder a una variable dentro de la misma clase a través de una propiedad?
- 18. clase extendida no se encuentra cuando la clase base es separada en un archivo de inclusión
- 19. ¿Cómo se muestra el VTABLE de una clase de C++ a través de GCC?
- 20. Comprobación de si una clase es java.lang.Enum
- 21. errores de inclusión de archivos (C++): referencia indefinida a ______
- 22. Javascript: ¿cómo se llama a una función dentro de una clase dentro de esa clase?
- 23. Una clase con varios archivos de implementación
- 24. dos archivos CSS que definen misma clase
- 25. AS3 - ¿Puedo saber si una clase implementa una interfaz (o es una subclase de otra clase)?
- 26. serializar una clase estática?
- 27. Llamando a los métodos de clase a través del nombre de clase vs auto
- 28. Llamar a un método de clase dentro de una clase
- 29. ¿Puede una clase interna de una clase de plantilla ser una clase sin plantilla?
- 30. Método declarado fuera de la clase se incluye automáticamente?
Estoy bastante seguro de que acaba de [pedir esto] (http://stackoverflow.com/questions/4917488/c-include-header-problem). – Maxpm
Me gusta hacer preguntas dos veces. – Rn2dy