c++過載運算子
阿新 • • 發佈:2021-09-01
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; } ..... 其他都差不多 };