注:これは、インライン関数の使用方法や機能についての問題ではなく、なぜそれらが現在の方法で行われるのかということです。
クラスメンバー関数の宣言では、関数をとして定義する必要はありませんinline
。関数の実際の実装のみです。たとえば、ヘッダーファイルでは次のようになります。
struct foo{
void bar(); // no need to define this as inline
}
なぜクラスのインライン実装では機能しない持っているヘッダファイルにしますか?インライン関数を.cpp
ファイルに配置できないのはなぜですか?インライン定義を.cpp
ファイルに入れようとすると、次の行に沿ってエラーが発生します。
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
inline
の定義に表示されなく対事前申告その逆。もしそうなら、これが役立つことがあります。stackoverflow.com/questions/4924912/...