c++ 中 operator的两种用法

c++中的operator 有两种用法,一种是(operator overloading)运算符重载,一种是(operator casting)操作隐式转换

实例代码如下:

#include <iostream>  
using namespace std;  
class num  
{  
protected:  
    int m_a;  
    int m_b;  
public:  
    num(int a, int b):m_a(a),m_b(b){}  
    num operator + (const num& n )  //用法1
    {  
        this->m_a += n.m_a;  
        this->m_b += n.m_b;  
        return *this;  
    }  
    operator bool()  <span style="white-space:pre">		</span>   //用法2
    {  
        if( this->m_a == 0 && this->m_b == 0 ) return false;  
        return true;  
    }  
    /*输入输出运算符只能定义成友元函数*/  
    friend ostream& operator << ( ostream& os, num& n );  
};  
 ostream& operator << ( ostream& os, num& n )  
 {  
     os <<n.m_a <<"," <<n.m_b <<endl;  
     return os;  
 }  
  
int _tmain(int argc, _TCHAR* argv[])  
{  
    num a(1,2);  
    cout <<a;  
    num b(3,4);  
    cout <<b;  
    a = a + b;  
    cout <<a <<endl;  
    if(a)  
    {  
        cout << "a != 0" <<endl;  
    }  
    return 0;  
出处: http://blog.csdn.net/zipper9527/article/details/7619229


你可能感兴趣的:(C++,operator)