1
我想在同一個類的另一個方法中使用預先聲明的operator[]
。但是,我不知道如何繼續。有趣的是,我甚至不知道如何谷歌它:(。請,建議...C++:在另一種方法中使用預先聲明的運算符[]
這是雙鏈表的一部分 - 我想在其中啓用數組行爲(我知道 - 不好 :))。
代碼片段:
template <typename T>
T& DLL<T>::operator[](int i) const{
Node <T>*n = this->head;
int counter = 0;
while (counter > i) {
n = n->next;
counter++;
}
return n->next->val;
}
template <typename T>
T& DLL<T>::at(int i) const throw (IndexOutOfBounds) {
if (i < 0 || i >= elemNum) {
throw IndexOutOfBounds("Illegal index in function at()");
}
// I want this part to use the predeclared operator
// obviously this is not right...
return this[i]; // Why u no work?!??!?
}
認爲你的意思是'(* this)[i]'。 「你沒有工作」,因爲你正在使用poiner-indexing;不是你的運營商。 – WhozCraig 2014-11-05 23:28:52
@WhozCraig Woops!我認爲你應該把它作爲回答而不是評論 - 但這實際上是解決方案...謝謝! – RafazZ 2014-11-05 23:31:39