首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

种模板采用包含编译模型编译报错

2013-08-01 
类模板采用包含编译模型编译报错按照c++ primer 第四版中所述的包含编译模型实例,在vs2010中编译怎么报错

类模板采用包含编译模型编译报错
按照c++ primer 第四版中所述的包含编译模型实例,在vs2010中编译怎么报错呢?代码如下


//MyQueue.h  头文件
#ifndef MYQUEUE_H
#define MYQUEUE_H
#include "stdafx.h"
template <class T> class MyQueue
 {
 public:
T GetMember();
MyQueue(const T& param);
 private:
 T FirstMember;
 };
#include "MyQueue.cpp"  //包含模板定义的源文件
#endif



//模板定义源文件
#include "stdafx.h"
 template<class T> 
 MyQueue<T>::MyQueue(const T& param)
 {
 FirstMember=param;
 }
template <class T>
T MyQueue<T>::GetMember()
{
return FirstMember;
}



错误描述如下:


错误1 error C2143: 语法错误 : 缺少“;”(在“<”的前面)                   myqueue.cpp4行
错误2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int myqueue.cpp4行
错误3 error C2988: 不可识别的模板声明/定义                         myqueue.cpp4行
错误4 error C2059: 语法错误:“<”                                 myqueue.cpp4行
错误5 error C2039: “GetMember”: 不是“`global namespace'”的成员myqueue.cpp9行
错误6 error C2143: 语法错误 : 缺少“;”(在“{”的前面)                 myqueue.cpp10行
错误7 error C2447: “{”: 缺少函数标题(是否是老式的形式表?)         myqueue.cpp10行

怎么出了这么多错误呢?
(函数模板用包含编译模型编译就没问题)
[解决办法]
您好,模板目前还不支持头文件和源文件的分离,要都写到.h文件中。

热点排行