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根据运算符>>
的参数,网格是一个矩形
而不是数组。通过使用网格参数调用这些函数,修复了抛出的每个错误。谢谢另外,现在关闭>>操作符重载定义的最后一个“}”抛出一个错误,说“需要声明”。