C++ 从头文件c+;调用另一个头文件的内联函数+;

C++ 从头文件c+;调用另一个头文件的内联函数+;,c++,C++,我有2个头(.hh)文件,在这两个文件中都定义和实现了一些函数: 我想要的是从头文件a中的一个实现调用另一个头文件的函数(我们称之为B) 以下是我所拥有的: //headerA.hh LSQUnit<Impl>::read(...args....) ... callfunction(...args...); } 但是我在headerA.hh中得到了对callfunction的未定义引用 callfunction<BaseDynInst> callfunction

我有2个头(.hh)文件,在这两个文件中都定义和实现了一些函数:

我想要的是从头文件a中的一个实现调用另一个头文件的函数(我们称之为B)

以下是我所拥有的:

//headerA.hh
LSQUnit<Impl>::read(...args....)
   ...
callfunction(...args...);
}
但是我在headerA.hh中得到了对callfunction的未定义引用

callfunction<BaseDynInst> callfunction (...args...)
我也试过这些方法:

当我在海德拉叫它的时候

callfunction<BaseDynInst> callfunction (...args...)
调用函数调用函数(…参数…) 或者在我的headerB.hh中添加此实现:

LSQUnit<Impl>::callfunction(...args...)
LSQUnit::callfunction(…args…)
但是他们给了我更多的错误

我知道将实现放在.hh中可能不太理想,但我使用的模拟器不是我自己创建的,所以我不能改变这一点,因为这会让事情变得更糟


是否可能是我想要的,或者唯一的解决方案是在headerA.hh内实现该功能?我想避免这种情况,因为它调用了headerB.hh中存在的许多其他函数。

似乎
callFunction
是一个模板类的非静态成员函数。正确的说法是

LSQUnit<Impl> something;
something.callFunction(...);

用于调用成员函数。

如果使用模板,则必须将实现放在头文件中。
LSQUnit<Impl> something;
something.callFunction(...);
LSQUnit<Impl>::callfunction(...args...)