Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 关于C++;模板_C++_Templates - Fatal编程技术网

C++ 关于C++;模板

C++ 关于C++;模板,c++,templates,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; } 模板

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

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;
}
模板
课堂测试
{
公众:
test::test();
T out();
};
模板
test::test()
{
}
T测试::out()
{
}
int main()
{
//试验t;
}

但是当我试图编译它时,它说'T':未声明的标识符使用类模板需要模板参数列表,指向同一行,我在那里实现了方法out()。有人能解释一下问题出在哪里吗??我正在使用visual studio 2008。

您对out成员的定义缺少模板参数列表。其内容应为:-

template <typename T>
T test<T>::out() 
{ 
} 
模板
T测试::out()
{ 
} 

您对out成员的定义缺少模板参数列表。其内容应为:-

template <typename T>
T test<T>::out() 
{ 
} 
模板
T测试::out()
{ 
} 
这一行是错误的:

test<T>::test();
这一行是错误的:

test<T>::test();

以下更为准确:

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

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

template <typename T>
T test<T>::out()
{
}
模板
课堂测试
{
公众:
test();
T out();
};
模板
test::test()
{
}
模板
T测试::out()
{
}
1) 不要在类内使用

2) 不要忘记在每个方法声明出类体之前声明模板

以下更准确:

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

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

template <typename T>
T test<T>::out()
{
}
模板
课堂测试
{
公众:
test();
T out();
};
模板
test::test()
{
}
模板
T测试::out()
{
}
1) 不要在类内使用

2) 不要忘记在每个方法声明出类体之前声明模板
,OP没有缩进代码,因此
被视为未知HTML元素并被忽略。哎哟-很好,尽管我认为答案仍然正确-我只是得到了错误的缺少参数列表。@Marcelo Cantos-更改。感谢您的反馈OP没有缩进代码,因此
被视为未知的HTML元素并被忽略。哎哟-很好,尽管我认为答案仍然正确-我只是得到了错误的缺少参数列表。@Marcelo Cantos-更改。谢谢你的反馈,这是错误的;这将只是定义一个新的自由函数,而不是类方法。我想我应该更清楚。我指的是类中的声明,而不是后面的定义。(分号应该表示出来)哦,我没看到-(-1):)这是错误的;这将只是定义一个新的自由函数,而不是类方法。我想我应该更清楚。我指的是类中的声明,而不是后面的定义。(分号应该表示出来)哦,我没看到-(-1) :)