一个简单的运算符重载的类

#include <iostream>
using namespace std;

class CInt 
{
public:
 CInt(int i) : m_i(i) {};
 virtual ~CInt(){};

 void operator<<(ostream& os, const CInt &i)
 {
  os << '[' << i.m_i << ']';
 }
public:
 
 CInt &operator++()
 {
  ++(this->m_i);
  return *this;
 }

 const CInt operator++(int)
 {
  CInt temp = *this;
  ++(*this);
  return temp;
 }

 CInt &operator--()
 {
  --(this->m_i);
  return *this;
 }
 
 const CInt operator--(int)
 {
  CInt temp = *this;
  --(*this);
  return temp;
 }

 int &operator*() const
 {
  return (int &)m_i;
 }
 
private:
 int m_i;
};

//测试函数
int main(int argc, char* argv[])
{
 CInt I(5);
 cout << I++;
 cout << ++I;
 cout << I--;
 cout << --I;
 cout << *I;
 return 0;
}

你可能感兴趣的:(运算符)