NB Ce n'est pas une question sur la façon d'utiliser les fonctions inline ou comment ils fonctionnent, pourquoi ils sont fait de la façon dont ils sont.
La déclaration d'une fonction membre de classe n'a pas besoin de définir une fonction en tant que inline
, c'est seulement la mise en œuvre effective de la fonction. Par exemple, dans le fichier d'en-tête:
struct foo{
void bar(); // no need to define this as inline
}
Alors pourquoi ne inline mise en œuvre d'une des classes de fonction ont à être dans le fichier d'en-tête? Pourquoi ne puis-je pas mettre la fonction en ligne de l' .cpp
le fichier? Si je où pour essayer de mettre la ligne de définition dans l' .cpp
le fichier j'ai une erreur du genre:
error LNK2019: unresolved external symbol
"public: void __thiscall foo::bar(void)"
(?bar@foo@@QAEXXZ) referenced in function _main
1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe
: fatal error LNK1120: 1 unresolved externals