如何创建一个接受包含任何类型数据的向量的类?

时间:2013-12-14 20:41:08

标签: c++ oop vector stl

这是我的尝试:

template<typename T> class myClass {
 public:
  myClass(std::vector<T> v) {
  }
  std::vector<T> myVect;
};

但是当我尝试使用它时:

myClass myClassInstance(myVect);

它给出了:

error: missing template arguments before 'myClassInstance'

2 个答案:

答案 0 :(得分:2)

创建对象时需要指定模板的类型:

myClass<some_type> myClassInstance(myVect);

答案 1 :(得分:2)

不要忘记实际初始化您的成员变量以避免分段错误。

  myClass(const std::vector<T>& v) : myVect(v) {
  }

int main() {

    myClass<int> mc(std::vector<int>{1, 2, 3, 4, 5});
    std::cout << mc.myVect[0];
}