C ++模板成员函数中的语法错误

时间:2015-05-05 11:20:10

标签: c++

我是C ++的新手,希望在不删除函数fl()的情况下修复以下模板函数代码获得一些帮助

template<type T>
class Test
{
int f1(T* x);
};

template< T>
int Test::f1(T* x)
{
return 5:
};

2 个答案:

答案 0 :(得分:3)

您有很多语法错误,但我想您的主要问题是您需要Test<T>::f1而不是Test::f1

//typename, not type
template<typename T>
class Test
{
    int f1(T* x);
};

//      forgot typename
template<typename T>
int Test<T>::f1(T* x)
//need  ^^^
{
    return 5;
}
//^ no semicolon

答案 1 :(得分:2)

正确的语法是

template<typename T>
class Test
{
    int f1(T* x);
};

template<typename T>
int Test<T>::f1(T* x)
{
    return 5;
};

请注意,指定模板参数T的关键字为typenameclass