此为C++PP第六版中的程序清单11.10。似乎蓝标的重载函数不是友元函数也能顺利实现的样子......将该函数作为友元函数有什么好处吗?
因为它没有调用time的私有成员,所以是否友元就无所谓了。你要是在其中加上一个cout << t.hours; 试试看,如果没有friend就报错。
上图摘自c++ prime plus
至于你说的去掉friend 不会报错我就不知道什么问题了,我用vs2017 去掉friend 之后直接就报了语法错误