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