【发布时间】:2019-11-01 09:10:09
【问题描述】:
我已经编写了友元函数来重载
我不小心使用了对 ostream 类的 const 引用,它显示错误提示:
错误:运算符不匹配
友元函数的类声明如下:
friend void operator<<(const std::ostream & os, const Time & t);
但是当我使用时:
friend void operator<<(std::ostream & os, const Time & t);
从代码中删除 const 可以正常工作。 为什么 const 会出错? 我认为 const 只是告诉我们没有修改对象
不工作代码的函数定义为:
void operator<<( const std::ostream & os,const Time & t)
{
os << t.hours << " hours and " << t.minutes << " minutes "<<std::endl;
}
请帮我解决这个疑问 提前致谢
【问题讨论】:
-
您的运算符在另一个方面也是错误的:重载的“输入”和“输出”运算符也应该返回对流的引用。否则你不能链接你的输出。
标签: c++