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

vector实例化有关问题

2013-03-14 
vector实例化问题#include vectortemplatetypename DataTypeclass CircularQueue{public:CircularQueu

vector实例化问题

#include <vector>

template<typename DataType>
class CircularQueue
{
public:
CircularQueue(std::vector<DataType>::size_type size)
:size_(size),queue_(size),head_(0),rail_(0)
{
}
private:
std::vector<DataType>::size_type size_;
std::vector<DataType> queue_;
std::vector<DataType>::size_type head_ , rail_;
};


编译器提示:
e:\forjob\circularqueue\circularqueue\circularqueue.h(10): warning C4346: “std::vector<DataType>::size_type”: 依赖名称不是类型
1>          用“typename”为前缀来表示类型
1>          e:\forjob\circularqueue\circularqueue\circularqueue.h(46): 参见对正在编译的类 模板 实例化“CircularQueue<DataType>”的引用
1>e:\forjob\circularqueue\circularqueue\circularqueue.h(10): error C2061: 语法错误: 标识符“size_type”

为什么识别不了size_type呢?小白求教
[解决办法]
因为编译器不知道你的size_type是类型还是成员变量。
你要用typename std::vector<DataType>::size_type size_;
[解决办法]
引用:
因为编译器不知道你的size_type是类型还是成员变量。
你要用typename std::vector<DataType>::size_type size_;


++ 

typename
[解决办法]
缺失 typename

热点排行