fonction non intégrée définie dans le fichier d'en-tête avec des gardes résultats dans la liaison Erreur: Déjà défini dans quelque purée.Obj File
Faire fonctionner la fonction fonctionne bien, mais je ne suis pas en mesure de comprendre pourquoi la fonction est déjà erronée dans le premier cas. P> p>
3 Réponses :
Comme il n'est pas en ligne, chaque unité de traduction aura sa propre copie de la fonction résultant de la fonction définie plusieurs fois. P>
Si l'en-tête est inclus dans plusieurs fichiers de source et que la fonction n'est pas marquée comme "en ligne", vous aurez plus d'une définition. Les gardes incluent seulement empêchent de multiples inclusions dans le même fichier source. P>
Je soulignerais également que le mot clé code> inline code> n'est pas nécessaire lorsque vous parlez de méthodes de classe définies dans la déclaration de classe Stackoverflow. COM / A / 145952/2436175
Vous avez violé la règle d'une définition . Si vous souhaitez définir une fonction directement dans l'en-tête, vous devez le marquer comme en ligne code> - qui permettra de définir la fonction plusieurs fois. Notez également que
inline code> n'a aucune autre signification, en particulier cela ne force pas le compilateur à des appels en ligne (contrairement à la croyance populaire). P>