Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342111
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:02:20

#include
using namespace std;

class my_int
{
public:
  inline my_int operator + (const int i)const{ return (int)*this+i; }
  inline my_int operator - (const int i)const{ return (int)*this-i; }
  inline my_int operator * (const int i)const{ return (int)*this*i; }
  inline my_int operator / (const int i)const{ return (int)*this/i; }
  inline my_int operator + (const my_int &m)const{ return *this+(int)m; }
  inline my_int operator - (const my_int &m)const{ return *this-(int)m; }
  inline my_int operator * (const my_int &m)const{ return *this*(int)m; }
  inline my_int operator / (const my_int &m)const{ return *this/(int)m; }
  inline operator int()const{int i = (buf[2]&0x80)?-1:0; memcpy(&i,buf,3); return i; }
  inline my_int &operator=(const int i){ memcpy(buf,&i,3); return *this; }
  inline my_int &operator=(const my_int &m){ memcpy(buf,m.buf,3); return *this; }
  inline my_int() { *this=0; }
  inline my_int(int i) { *this=i; }
  inline my_int(my_int &m) { *this=m; }
private:
  unsigned char buf[3];
};

int main(int argc, char* argv[])
{
  my_int a=8, b=9;
  my_int c=a+b+3*a;
  cout<<"a="<
阅读(953) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~