-3
如何重載C++中的[]運算符。我基本上想訪問One-D數組的索引並返回它。我試過這樣做,但似乎沒有產生預期的結果。我該如何重載[]運算符?
Square Square::operator [](const Square& temp)
{
Square obj; //creates a Square class object.
for(int i=0;i<dimension;i++)
{
*obj.board = temp.board[i];
}
return obj;
}
看起來像您正在使用[]作爲返回新對象的複製操作符。你想要的是得到一個索引,我,並返回this.board [我]。假設this.board存在。 – kabanus
編譯所有警告和調試信息('g ++ -Wall -g'),然後**使用調試器**(''gdb')。你的錯誤可能在其他地方(也有'臨時',這是索引,是一個'Square'看起來很奇怪) –
如果'Square'包含你想訪問的數組,那麼你基本上需要一個pass-through操作符, '運算符[]'爲普通數組。這意味着它應該採用索引,返回對實際數組元素類型的引用,並在內部使用數組的'operator []'。 –