Qt Creator: "fonction inline utilisée mais jamais définie" - pourquoi?
Pourquoi j'obtiens ce message d'avertissement dans Qt Creator: ` fonction ' inline ‘bool Lion::growl ()’ utilisé mais jamais défini?
J'ai vérifié mon code, et d'une déclaration
inline bool growl ()
dans Lion
(lion.h
)
et la mise en œuvre correspondant dans lion.cpp
:
inline bool Lion::growl ()
Ce qu'il se passe?
EDIT: Mon hypothèse est que c'est légal pour définir la réelle méthode inline dans le .fichier cpp (le inline
mot-clé alertes le compilateur pour rechercher le corps de la méthode d'ailleurs), ou je me trompe?
Je ne veux pas encombrer mes fichiers d'en-tête avec des détails de mise en œuvre.
source d'informationauteur Tony the Pony
Vous devez vous connecter pour publier un commentaire.
Bien, je ne connais pas le problème exact, mais pour les débutants:
Voir aussi: c++ faq lite
Sauf si la fonction en ligne est utilisé dans le même projet, voire dans un autre fichier que #include son en-tête.
Je m'ennuie, il ya une telle restriction pour les bibliothèques parce que la restriction des en-têtes pour les prototypes de fonction de rendre les choses plus lisibles.
Ce sujet #include-ing .rpc ?
En plus de ce que Johan a dit, vous ne pouvez pas avoir une définition distincte et de la déclaration de la fonction, même si les deux sont dans le même fichier d'en-tête. C'est particulièrement vrai pour les fonctions de membres de les classes. Le code de la fonction doit être de la forme:
Et PAS de la forme