L'Initialisation Statique De La Constante De Tableau Dans Le Fichier D'En-Tête
J'ai juste trouvé que le suivant n'est pas valide.
//Header File
class test
{
const static char array[] = { '1', '2', '3' };
};
Où est le meilleur endroit pour initialiser cette?
Vous devez vous connecter pour publier un commentaire.
Le meilleur endroit serait dans un fichier source
Vous pouvez initialiser les types d'entiers dans la déclaration de classe comme on essaie de le faire; tous les autres types doivent être initialisées à l'extérieur de la déclaration de la classe, et une seule fois.
.h
sont les déclarations et.c
des définitions, donc pourquoi prendre une référence à un type entier, qui est déclarée seulement dans l'en-tête des résultats dans une erreur de compilateur:undefined reference to test::SOME_INTEGER
? (Je me rends compte de cela sonne super tatillon et pédant, et je n'essaie pas d'être difficile, je veux juste m'assurer que je suis en utilisant la bonne terminologie, définitivement, corrigez-moi si je me trompe).Vous pouvez toujours faire ce qui suit:
Un couple de belles choses à propos de ce paradigme:
&a[1]
être cohérent sur plusieurs objets.static
's de nombreuses utilisations confuse pour beaucoup de gens.Maintenant, en C++17, vous pouvez utiliser variable inline
Comment puis-inline variables de travail?
Dans votre exemple:
devrait fonctionner