C ++,模板参数错误

时间:2012-03-16 10:54:15

标签: c++ templates

下面是我想要通过从用户获取值来构建的模板矩阵。 但是当我编译它时。我收到了以下错误。为什么会出错?

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();
         ...
         ...
     }
};

1 个答案:

答案 0 :(得分:6)

问题是std::vector<T>::iterator是“依赖类型” - 整个类型取决于T。使用typename对此进行前缀以解决问题,因此请将行读为

typename std::vector<T>::iterator it= stringArray.begin();