我有我的基类:C++:在基类模板方法
class UnitTestThread : public testing::Test
{
public:
/// purgeQueue()
template <typename T> void purgeQueue(const ___handle queue, T &data) const;
};
我的继承类:
class HmiTest : public UnitTestThread
{
public:
// Sets up the test fixture.
virtual void SetUp();
// ...
}
void HmiTest::SetUp()
{
// By default , purge all the queues
CONTROL_ACTION_PARAM controlAction;
purgeQueue(ApplicationContext.queueControlActionsToThermostat, controlAction);
}
而且我有一个链接错误:
HmiTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall UnitTestThread::purgeQueue<struct CONTROL_ACTION_PARAM>(void * const,struct CONTROL_ACTION_PARAM &)const " ([email protected][email protected]@@[email protected]@[email protected]@@Z) referenced in function "public: virtual void __thiscall HmiTest::SetUp(void)" ([email protected]@@UAEXXZ)
我不明白为什么...:-S
谢谢非常感谢你们的帮助!
凡'purgeQueue'定义? – StoryTeller
[为什么模板只能在头文件中实现?](http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file) – Jarod42
@Anthony你需要接受一个答案。 –