64,646
社区成员
发帖
与我相关
我的任务
分享
问题:运算符的作用域问题
以下是一个 测试代码,重载了<<, <
输出打印Test类的时候, 编译器是根据什么规则去调用 重载的bool operator<<函数???
Test中的<<只是个局部的重载, 为什么只是局部的重载?
operator<< 尽管在类中实现,但是它所在的作用域和类Test没有关系额, 和一个普通的 函数fun的作用域一样啊??
void fun()
{
cout<<"heloo"<<endl;
}
class Test
{
int a;
float b;
public:
Test(int i_a, float f_b):a(i_a),b(f_b){}
friend bool operator<(Test const & obj1, Test const& obj2)
{
return obj1.a<obj2.a;
}
friend ostream& operator<<(ostream& o, Test const& obj)
{
o<<obj.a<<" "<<obj.b<<endl;
return o;
}
};