私は次のようなクラスを持っています:
Base.h
class Base {
public:
Base();
virtual int getInfo(int i);
protected:
int GetDetail (int iVal);
}
inline int Base::getInfo(int i){
int output = GetDetail(i);
return output;
};
Ib Base.cpp には、GetDetail が定義されています。
int Base::GetDetail(int i){
int output;
// do work to output
return output;
}
独自の実装 getInfo() から GetDetail を呼び出す派生クラスがいくつかあります。
Base.h の仮想関数定義から getInfo() の呼び出しを削除すると、派生クラス独自の実装でコードがコンパイルされます。
インライン化された仮想関数から GetDetail を呼び出す仮想関数でコンパイルすると、リンクは次のように失敗します。
GetDetail への参照が定義されていません。
何か案は?