【发布时间】:2016-11-22 09:10:08
【问题描述】:
有这个代码:
class precision {
int digits;
public: precision(int digits) : digits(digits) {}
friend ostream& operator<<(ostream& os, const precision& p) {
os.precision(p.digits);
return os;
}
};
它的目的是制作一个类似的命令行:
cout << precision(5) << a << " " << precision(2) << b << endl;
工作,而不是做:
cout.precision(5);
cout << a << " ";
cout.precision(2);
cout << b << endl
我不明白朋友功能部分是如何工作的。为什么是朋友?它为什么会收到两个参数而不是一个?谢谢。
【问题讨论】: