当我可以决定是否应该将某个特定的函数/运算符声明为类的某个函数/运算符或类的成员函数/运算符时。?
答案 0 :(得分:1)
每当你需要访问"胆量"你的班级(即私人成员)的一个与你的班级没有真正关系的职能。
就是一个典型的例子friend std::ostream& operator<<(std::ostream& os, const Foo& foo)
你重载的,你只需通过iostream显示你的对象,比如
std::cout << my_object;
在这种情况下,假设您需要授予对类私有成员的访问权限,该函数应为friend
。它甚至不能成为成员函数,因为在这种情况下你应该像
my_object << (std::cout);
看起来很奇怪。