读书人

vector实例化有关问题

发布时间: 2013-03-14 10:33:15 作者: rapoo

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

读书人网 >C++

热点推荐