有关C ++模板的问题

时间:2010-05-02 05:44:21

标签: c++ templates

我使用了一个关于模板的测试程序的简单类,这就是我所做的:

template <typename T>
class test
{
public:
    test<T>::test();
    T out();
};

template <typename T>
test<T>::test()
{
}

T test<T>::out()
{
}

int main()
{
    //test<int> t;
}

但是当我尝试编译它时,'T':未声明的标识符使用类模板需要模板参数列表,指向同一行,我在哪里实施了方法 out()。任何人都可以解释问题是什么?我正在使用visual studio 2008。

3 个答案:

答案 0 :(得分:5)

以下更准确:

template <typename T>
class test
{
public:
    test();
    T out();
};

template <typename T>
test<T>::test()
{
}

template <typename T>
T test<T>::out()
{
}

1)不要在课堂内使用<T> 2)不要忘记在每个方法声明出来之前声明模板<T>

答案 1 :(得分:0)

您对out成员的定义缺少模板参数列表。应该读: -

template <typename T>
T test<T>::out() 
{ 
} 

答案 2 :(得分:0)

这一行错了:

test<T>::test();

请写下:

test();