如何在c ++中重载[]运算符。我基本上想要访问一维数组的索引并返回它。我试过这样做,但它似乎没有产生预期的结果。
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;
}
答案 0 :(得分:1)
确保你的Square
类中有一系列排序,然后你的下标重载看起来像这样
Square& Square::operator[] (const int index)
{
// checks if index is >= to zero AND less than your array size
assert(index >= 0 && index < yourArray.size());
return yourArray[index];
}
有关assert
的更多信息 PS:这可以假设您将创建一个Square
数组。如果没有,则分别更新方法签名。