2016-10-25 2 views
-3

J'ai la signature de la fonction dans mon fichier .hpp et la définition dans mon fichier .cpp.Comment définir une fonction inline dans un fichier .cpp avec une signature dans un fichier .hpp?

Je reçois une erreur de l'éditeur de liens à chaque fois que j'essaie, mais elle disparaît et fonctionne très bien dès que je supprime le mot 'inline'.

+2

Veuillez inclure un [exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve). –

+0

Réponse courte: vous n'avez pas – Slava

+0

Le point entier de 'inline' est de vous permettre de placer la définition de la fonction dans l'en-tête. Si vous essayez d'utiliser 'inline' pour dire au compilateur d'intégrer la fonction, ne vous inquiétez pas; Les compilateurs modernes intégreront les fonctions qu'ils jugent appropriées, que vous donniez ou non le mot clé 'inline'. – 0x5453

Répondre

1

Une fonction inline doit être définie dans chaque unité de traduction dans laquelle elle est utilisée. Si vous voulez que la fonction soit en ligne, vous devez la définir dans l'en-tête. Si vous souhaitez le déclarer dans l'en-tête et le définir dans le fichier .cpp, ne le marquez pas inline.