请教一下一个问题,关于.h和.cpp的问题
时间:2011-12-11
来源:互联网
我用的visual studio2010,
有一个简单代码,队列。h中代码为
template<class T>
class SLNode{
public:
T date;
SLNode<T> *next;
SLNode(SLNode* nextNode=NULL);
SLNode(const T &item,SLNode* nextNode=NULL);
};
队列.cpp中代码如下
template<class T>
SLNode<T>::SLNode(SLNode* nextNode=NULL){
next=nextNode;
}
template<class T>
SLNode<T>::SLNode(const T &item,SLNode* nextNode=NULL){
date=item;
next=nextNode;
}
检查时总会出错,请问一下原因
错误 1 error C2143: 语法错误 : 缺少“;”(在“<”的前面) c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 3 error C2988: 不可识别的模板声明/定义 c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 4 error C2059: 语法错误:“<” c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 5 error C2143: 语法错误 : 缺少“;”(在“{”的前面) c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 6
错误 6 error C2447: “{”: 缺少函数标题(是否是老式的形式表?) c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 6
有一个简单代码,队列。h中代码为
template<class T>
class SLNode{
public:
T date;
SLNode<T> *next;
SLNode(SLNode* nextNode=NULL);
SLNode(const T &item,SLNode* nextNode=NULL);
};
队列.cpp中代码如下
template<class T>
SLNode<T>::SLNode(SLNode* nextNode=NULL){
next=nextNode;
}
template<class T>
SLNode<T>::SLNode(const T &item,SLNode* nextNode=NULL){
date=item;
next=nextNode;
}
检查时总会出错,请问一下原因
错误 1 error C2143: 语法错误 : 缺少“;”(在“<”的前面) c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 3 error C2988: 不可识别的模板声明/定义 c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 4 error C2059: 语法错误:“<” c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 2
错误 5 error C2143: 语法错误 : 缺少“;”(在“{”的前面) c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 6
错误 6 error C2447: “{”: 缺少函数标题(是否是老式的形式表?) c:\users\dell\documents\visual studio 2010\projects\第一次作业\第一次作业\队列.cpp 6
作者: my765089223 发布时间: 2011-12-11
模板的编译比较特殊,把类的声明和实现全部放在cpp文件里即可,然后用到的地方直接#include "XX.cpp",这个方法不是很雅观,你可以搜一下C++模板类的编译方式,还是可以学到不少东西的
作者: yby4769250 发布时间: 2011-12-11
1 你的构造函数的参数错了 SLNode(SLNode* nextNode=NULL);改为 SLNode(SLNode<T>* nextNode=NULL);
后面的类似
2 模板的定义最好和声明放一起 都放在 .h文件中。 不然 就要在使用模板的文件中 包含 .h 和 .cpp
大概是这样。没有帮你编译。
后面的类似
2 模板的定义最好和声明放一起 都放在 .h文件中。 不然 就要在使用模板的文件中 包含 .h 和 .cpp
大概是这样。没有帮你编译。
作者: Ethan_Jnu 发布时间: 2011-12-11
模版的声明及定义必须放在同一文件中,这是规定
作者: keiy 发布时间: 2011-12-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28