Un ejemplo de varios archivos en C++, buscando respuestas de Prawn
1: La diferencia entre h y cpp:
De hecho, no hay diferencia. pero el compilador solo compila archivos cpp. Al compilador no le importan los archivos h
Por lo tanto, para evitar definiciones repetidas, es habitual que los archivos h se utilicen para declaraciones de variables y declaraciones de miembros de clases. y archivos cpp para definir variables y funciones relacionadas
Dos: ifndef....Declaración de miembro de clase, el archivo cpp se utiliza para definir variables y funciones relacionadas
Dos: ifndef... .define...define.... .......La función de endif:
En un archivo h, es probable que se incluya un archivo de encabezado h varias veces, por lo que una variable a menudo se declara varias veces. Para evitar este problema,
Agregue en el archivo de encabezado h:
#ifndef cualquier carácter legal (para facilitar la administración, los nombres de archivos duplicados deben ser lo más similares posible). como sea posible)
#define tiene exactamente los mismos caracteres que ifndef
....
...
...
...
#endif
Por lo tanto, se recomienda agregar #ifndef... .define... al comienzo de cada h archivo de encabezado.
Solo hay ventajas y no desventajas.
Tres:
El rol de externo:
Rol global si. Defina una variable que se pueda usar en todo el proyecto, especifíquela en el h general. Escriba extern en el archivo,
declaración de variable externa. En este momento, la variable no se declara realmente, solo le dice a la variable. compilador el papel de esta variable en todo el proyecto.
declaración de variable externa, esto realmente no declara la variable, solo le dice al compilador que todo el proyecto puede usar esta variable, por lo que debes volver a declarar la definición en el futuro
Pero extern se usa principalmente para operaciones con docenas o cientos de archivos, si su proyecto solo tiene 5 archivos, no hay necesidad de extern
Entonces
simplemente escriba la definición ifndef al final de cada archivo de encabezado No hay nada de qué preocuparse.
Entonces,
simplemente coloca la definición ifndef al final de cada archivo de encabezado y olvídate de eso, si quieres una variable solo incluye el archivo que la declara. Eso es todo.
Para lo que quieres, solo necesitas
#include "b.h" en m.cpp
incluir "a.h" en b.h
incluir " a.h" en a.cpp
Incluir "a.h" en a.cpp
En un proyecto con solo 5 archivos, no es necesario usar extern p>
Entonces,
simplemente agregue definiciones ifndef al principio y al final de cada archivo de encabezado y no tendrá que preocuparse por nada.
incluir "b.h" en b.cpp
Aceptar