我正在尝试重载<<
和>>
运算符。我在头文件中创建了我的朋友函数。然后,我将我的整个main函数复制并粘贴到源文件中的>>
重载定义中。我遇到的麻烦是,当使用这个数组调用这些函数时,对象数组会吐出错误。
示例:
grid[i].findPerimeter();
grid[i].findArea();
grid[i].findWidth();
grid[i].findHeight();
grid[i].printGrid();
在重载运算符的定义中调用这些函数会告诉我“no operator "[]" matches these operands
”。
这是重载运算符定义的开始。
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");
对于一些小背景,我应该告诉你,这个程序接受来自文件的输入并存储有关矩形的数据,即坐标。我试图将这些运算符作为赋值的一部分重载。
答案 0 :(得分:1)
你的程序失败了,因为grid
是一个参数和一个变量。您应该考虑更改其中一个的名称。