2 つのヘッダー (.hh) ファイルがあり、これらのファイルの両方でいくつかの関数が定義および実装されています。
私が望むのは、ヘッダーファイルAの実装から他のヘッダーファイルの関数を呼び出すことです(Bと呼びましょう)。
これが私が持っているものです:
//headerA.hh
LSQUnit<Impl>::read(...args....)
...
callfunction(...args...);
}
call 関数の実装は、次のような他のヘッダー ファイルにあります。
// headerB.hh
template<class Impl>
inline void
BaseDynInst<Impl>::callfunction (...args...){
....
}
これらをheaderA.hhに追加しました:
#include "headerB.hh"
....
void call function (...args...)
しかし、headerA.hhでcallfunctionへの未定義の参照を取得します
私もこれらを試しました:
headerA.hh から呼び出すと
callfunction<BaseDynInst> callfunction (...args...)
または、この実装を headerB.hh に追加します。
LSQUnit<Impl>::callfunction(...args...)
しかし、彼らは私にもっと多くのエラーを与えました。
実装を .hh 内に配置するのは理想的ではないことはわかっていますが、私が作成したものではないシミュレーターを使用しているため、状況が悪化するため、それを変更することはできません。
私が望むことは可能ですか、それとも唯一の解決策は headerA.hh 内に関数を実装することですか? headerB.hh に存在する他の多くのものを呼び出すので、それを避けたいですか?