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;
}
..... 其他都差不多

};