堆中的对象和覆盖索引运算符

时间:2015-02-09 20:10:06

标签: c++ object heap override

我在Vector类中覆盖了index([])运算符。当我使用堆栈初始化时:

Vector<int> myVector;
myVector.push_back(2);
cout<<myVector[0];

在这个例子中,一切都没问题,但如果我在堆中初始化Vector:

Vector<int>* myVector = new Vector<int>();
myVector->push_back(2);
cout<<myVector[0];

我收到错误。这是我的方法代码:

template<class T>
T Vector<T>::operator[](int index) const{
    return array[index];
}

是否有任何解决方案可以避免编译错误并获得正常工作的代码?

1 个答案:

答案 0 :(得分:3)

myVector是指针。所以使用:

myVector->push_back(2);

(*myVector)[0]

std::vector<int> &foo = *myVector; foo[0];