我无法将模板类作为参数传递给另一个函数。 我在Windows 8.1机器上使用VS2012 c ++ / cli编译x64。
编译器一直告诉我:
void Channel::TestFunc(SynchQueue<T> *)' : overloaded member function not found in 'Channel'
SynchQueue是多线程队列的模板类。我用另一个我称之为Images的类创建了它。
在我的main.cpp中,我有:
QPtr = new SynchQueue<Images>;
同样在main.cpp中,我创建了一个名为WorkerThread的类,我通过了QPtr。 没问题。
现在我希望WorkerThread将QPtr传递给另一个在WorkerThread中实例化的类。
所以我将函数定义为:
channel.h中
public ref class Channel
{
public:
// other definition stuff
void TestFunc(SynchQueue<Images> *tQPtr);
}
Channel.cpp
void Channel::TestFunc(SynchQueue<Images> *tQPtr)
{
int x;
x++;
}
我一直收到上面的错误。我做错了什么?
任何帮助表示赞赏。
答案 0 :(得分:0)
你需要:
template<typename T>
void TestFunc(SynchQueue<T> *tQPtr);