下面是我想要通过从用户获取值来构建的模板矩阵。 但是当我编译它时。我收到了以下错误。为什么会出错?
SO_template.cpp:
在成员函数void Matrix<T>::BuildMatrix(std::vector<T, std::allocator<_CharT> >)':
SO_template.cpp:44: error: expected
;'在“它”之前
如果我使用int专门研究我的课程,它不会抱怨为什么?
template<class T>
class Matrix
{
private:
vector<T> col;
int iNumberOfRow;
int iNumberOfCol;
public:
void BuildMatrix(const std::vector<T> stringArray)
{
std::vector<T>::iterator it= stringArray.begin();
cout<<"Build Matrix irow="<<stringArray.size();
...
...
}
};
答案 0 :(得分:6)
问题是std::vector<T>::iterator
是“依赖类型” - 整个类型取决于T
。使用typename
对此进行前缀以解决问题,因此请将行读为
typename std::vector<T>::iterator it= stringArray.begin();