C++ 超载>&燃气轮机;及<&书信电报;使用定义中的对象数组

C++ 超载>&燃气轮机;及<&书信电报;使用定义中的对象数组,c++,C++,我正在尝试重载运算符。我已经在头文件中创建了我的朋友函数。然后,我将几乎整个主函数复制并粘贴到源文件中的>重载定义中。我遇到的问题是,当使用该数组调用这些函数时,对象数组会抛出错误 例如: grid[i].findPerimeter(); grid[i].findArea(); grid[i].findWidth(); grid[i].findHeight(); grid[i].printGrid(); 在重载运算符的定义中调用这些函数告诉我“没有运算符”[]”与这些操作数匹配 这是重载运算符

我正在尝试重载
运算符。我已经在头文件中创建了我的朋友函数。然后,我将几乎整个主函数复制并粘贴到源文件中的
>
重载定义中。我遇到的问题是,当使用该数组调用这些函数时,对象数组会抛出错误

例如:

grid[i].findPerimeter();
grid[i].findArea();
grid[i].findWidth();
grid[i].findHeight();
grid[i].printGrid();
在重载运算符的定义中调用这些函数告诉我“
没有运算符”[]”与这些操作数匹配

这是重载运算符定义的开始

istream &operator>> (istream &input, Rectangle &grid)
{
ifstream inFile;

Rectangle grid[10];

int x11, x21, y11, y21, choice, numRectangles = 0, i;
char inner1, outer1;
string name1;

inFile.open ("rectangle.in");
outFile.open ("rectangle.out");

作为一个小背景,我应该告诉你,这个程序接受来自文件的输入,并存储关于矩形的数据,即坐标。作为赋值的一部分,我正在尝试重载这些运算符。

您的程序失败,因为
grid
是一个参数和变量。您应该考虑更改其中一个的名称。

运算符>代码> []/Calp>失败,应将该运算符重载为矩形。您将“<代码>网格< /代码>作为函数参数以及局部变量。这是个问题。@faranwath根据
运算符>>
的参数,网格是一个
矩形
而不是数组。通过使用网格参数调用这些函数,修复了抛出的每个错误。谢谢另外,现在关闭>>操作符重载定义的最后一个“}”抛出一个错误,说“需要声明”。