1. 程式人生 > 其它 >c++過載運算子

c++過載運算子

class A
{

private:
int m_data;

public:
A(int n=0):m_data(n){}     // 有參、無參構造
A(const A& a) { *this = a; }// 拷貝構造

public:
A& operator= (const A& a) {    // 賦值運算子
    m_data = a.m_data;
    return *this;  
}
operator int() { reutrn m_data; }    // 過載型別強轉運算子

A& operator+ (int num) {    // 加
     m_data += num;
     return *this; 
}

A& operator- (int num) {  // 減
     m_data -= num;
     return *this; 
}

A& operator++ () {    // 前加加
     ++m_data;
     return *this; 
}

A operator++ (int) { // 後加加
     return m_data++; 
}

A& operator-- () {    // 前減減
     --m_data;
     return *this; 
}

A operator-- (int) { // 後減減
     return m_data--; 
}

A& operator* (int num){
    if(!num) {
       count << "無意義:被乘數不能為0" << endl;
       m_data = 0;
    }
    else   
        m_data *= num;
    return *this;
}

A& operator/ (int num){
    if(!num) {
       count << "無意義:被除數不能為0" << endl;
       m_data = 0;
    }
    else   
        m_data /= num;
    return *this;
}
..... 其他都差不多

};