¿Declarar matriz en el encabezado de C++ y definirla en el archivo cpp?
Probablemente esto sea algo muy simple, pero soy nuevo en C++, así que necesito ayuda.
Sólo quiero declarar una matriz en mi archivo de encabezado C++ como:
int lettersArr[26];
y luego definirlo en una función en el archivo cpp como:
lettersArr[26] = { letA, letB, letC, letD, letE, letF, letG, letH,
letI, letJ, letK, letL, letM, letN, letO, letP, letQ, letR, letS,
letT, letU, letV, letW, letX, letY, letZ };
pero esto no funciona.
¿Me he equivocado con la sintaxis o algo así? ¿Cuál es la forma correcta de hacer esto?
Muchas gracias.
Aceptado
Agregue extern
a la declaración en el archivo de encabezado.
extern int lettersArr[26];
(Además, a menos que planee cambiar la matriz, considere agregar tambiénconst
).
La definición debe tener un tipo. Añadir int
(o const int
):
int lettersArr[26] = { letA, /*...*/ };
Encabezamiento:
extern int lettersArr[];
Fuente a nivel global:
int lettersArr[26] = { letA, letB, letC, letD, letE, letF, letG, letH,
letI, letJ, letK, letL, letM, letN, letO, letP, letQ, letR, letS,
letT, letU, letV, letW, letX, letY, letZ };
o si realmente quieres hacerlo en una función:
Fuente a nivel global:
int lettersArr[26];
Fuente en función:
int localLettersArr[26] = { letA, letB, letC, letD, letE, letF, letG, letH,
letI, letJ, letK, letL, letM, letN, letO, letP, letQ, letR, letS,
letT, letU, letV, letW, letX, letY, letZ };
memcpy (lettersArr, localLettersArr, sizeof (localLettersArr));