重载>>和<<在定义中包含一组对象

时间:2014-04-11 17:31:55

标签: c++

我正在尝试重载<<>>运算符。我在头文件中创建了我的朋友函数。然后,我将我的整个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");

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

1 个答案:

答案 0 :(得分:1)

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