【发布时间】:2015-04-09 16:50:27
【问题描述】:
我在 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];
}
是否有任何解决方案可以避免编译错误并获得工作代码?
【问题讨论】:
-
myvector是一个指针,而不是一个对象。您不能将其与运算符一起使用。当然也没有理由在这里使用指针……
标签: c++ object overriding heap-memory