在类模板里面定义如下迭代器:
template<class Type> class className { private: vector<Type>::iteratoriter; };
则会出现如下图所示的错误:
这是由于:vector本身就是模板,在其模板参数未确定之前,也就是Type 的具体类型没有确定之前,这个Type是未知的。
解决方法如下:
template<class Type> class className { private: typename vector<Type>::iterator iter; };
加上typename就是告诉编译器先不管具体类型,等模板实例化的时候再确定吧。
C++学习:关于“std::vector<Type>::iterator”的一个错误
原文地址:http://blog.csdn.net/chfe007/article/details/42500067