C++ Prime Plus 例题中 * 的重载函数为何要友元属性?

图片说明

此为C++PP第六版中的程序清单11.10。
似乎蓝标的重载函数不是友元函数也能顺利实现的样子......
将该函数作为友元函数有什么好处吗?

图片说明

因为它没有调用time的私有成员,所以是否友元就无所谓了。
你要是在其中加上一个
cout << t.hours; 试试看,如果没有friend就报错。

图片说明图片说明
上图摘自c++ prime plus

至于你说的去掉friend 不会报错我就不知道什么问题了,我用vs2017 去掉friend 之后直接就报了语法错误