在尝试cout
对象时,我是否自动要求重载插入操作符?
这是我用来练习为我的作业重载的简单客户端文件:
int main()
{
const fraction fr[] = {fraction(1,2), fraction(3,4), fraction(5,6)};
for (int i = 0; i < 2; i++) {
cout << "fraction [" << i <<"] = " << fr[i] << endl;
}
system("pause");
}
以下是我的头文件的相关部分,它代替cout
:
void fraction::print() const
{
cout << numer << " is the numerator " << denom << " is the denominator" << endl;
}
因此,当我删除cout
行并将其替换为对我的print函数的调用时,它工作正常,并打印出我的数组中每个分数的每个相应参数的值。但是,如果我尝试使用cout
它会吓坏并给我一个编译器错误。这是因为我需要重载插入操作符吗?
如果有人可以使用术语解释我的错误,我宁愿通过该方法学习,而不仅仅是一些随机工作的代码。我真的需要在这里学习这些材料,所以如果你们能用语言解释这笔交易是什么,那就太棒了。