C++ C++;模板成员函数未在此作用域中声明

C++ C++;模板成员函数未在此作用域中声明,c++,class,templates,C++,Class,Templates,我试图创建一个链表,但当我运行IsEmpty(测试)时,它只是说它没有在这个范围内声明,即使它是公共的 我对模板很陌生,但我在谷歌上找不到答案,所以我不得不在这里问一下。有人知道问题出在哪里吗 此外,错误指向main(),我在这里调用IsEmpty() /.h 模板 类节点 { 公众: 项目类型数据; 节点*下一步; 内部位置; }; 模板 类链表 { 公众: 节点*启动; 链表(); bool是空的(); } //.cpp #包括“链接列表.h” #包括 #包括 使用名称空间std; 模板 链

我试图创建一个链表,但当我运行IsEmpty(测试)时,它只是说它没有在这个范围内声明,即使它是公共的

我对模板很陌生,但我在谷歌上找不到答案,所以我不得不在这里问一下。有人知道问题出在哪里吗

此外,错误指向main(),我在这里调用IsEmpty()

/.h
模板
类节点
{
公众:
项目类型数据;
节点*下一步;
内部位置;
};
模板
类链表
{
公众:
节点*启动;
链表();
bool是空的();
}
//.cpp
#包括“链接列表.h”
#包括
#包括
使用名称空间std;
模板
链接列表::链接列表(){
start=NULL;
}
模板
bool链接列表::IsEmpty(){
if(start==NULL){
返回true;
}
返回false;
}
int main(){
链表检验;

cout调用成员函数的正确方法是
obj.function(…)
。您需要:

cout << test.IsEmpty() << endl;   //error points to here

cout必须在头文件中声明和定义模板。

模板头不能用作非模板头。必须在头文件中定义模板函数。只需将.CPP文件中的定义移到.h文件的末尾即可


完成后,您可以从您创建的对象中调用函数。

啊,非常感谢,我觉得dumb@Foxic不客气。我们偶尔都会做一些愚蠢的事情:)我明白了,但它似乎工作得很好。有什么原因吗?编辑:nvm刚刚看到发布的链接,这应该可以回答你的问题
cout << test.IsEmpty() << endl;   //error points to here