读书人

重载运算符的作用域解决方案

发布时间: 2012-04-06 12:22:24 作者: rapoo

重载运算符的作用域

C/C++ code
问题:运算符的作用域问题以下是一个 测试代码,重载了<<,  <输出打印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;    }};



问题2: 如何实现全局的重载,谁给个代码??

[解决办法]
friend函数,不就是全局函数,不懂LZ怎么想的

读书人网 >C++

热点推荐