将指向模板类的指针作为参数传递

时间:2014-04-26 16:31:21

标签: templates visual-studio-2012 c++-cli

我无法将模板类作为参数传递给另一个函数。 我在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++;
}

我一直收到上面的错误。我做错了什么?
任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

你需要:

template<typename T>
void TestFunc(SynchQueue<T> *tQPtr);