我在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];
}
是否有任何解决方案可以避免编译错误并获得正常工作的代码?
答案 0 :(得分:3)
myVector
是指针。所以使用:
myVector->push_back(2);
和
(*myVector)[0]
或
std::vector<int> &foo = *myVector; foo[0];