我如何重载[]运算符?

时间:2016-11-26 17:57:06

标签: c++ arrays overloading operator-keyword

如何在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;

}

1 个答案:

答案 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数组。如果没有,则分别更新方法签名。