TOP

2014年计算机二级C++复习资料:重载双目运算符
2017-09-19 12:45:30 】 浏览:10127
Tags:2014年 计算机 二级 复习资料 重载 双目 运算

二级C++辅导笔记:重载双目运算符


在(五)我们已经介绍了重载赋值运算符,这里就不重新说明了。
一。作为类成员函数的重载
  为了能进行类对象和一个整型值的加法运算,需要写一个类的成员函数来重载双目加法(+)运算符。该函数在类中的声明如下:
   Date operator + (int) const;
  函数的声明指出,返回值是一个Date类对象,函数名是运算符+,只有一个整型参数,而且函数是常量型的。当编译器发现某个函数以加上前缀operator的真实运算符作为函数名,就会把该函数当作重载运算符函数来处理。如果在表达式中,该运算符的左边是一个类对象,右边是一个参数类型的一个对象,那么重载运算符函数就会被调用。调用形式如下:
   Date dt(6,9,2005);
   dt=dt+100;
  也可以显式的调用重载运算符函数:
   dt.operator + (100);
  下面代码重载了双目加法运算符来计算一个整数和一个Date类对象之和,并且返回Date类对象。
   #include iostream.h
   class Date
   {
   int mo,da,yr;
   static int dys[];
   public:
   Date(int m=0,int d=0,int y=0)
   { mo=m; da=d; yr=y;}
   void display() const
   { cout < Date operator + (int) const;
   };
   int Date::dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
   Date Date::operator+(int) const
   {
   Date dt=*this;
   n+=dt.da;
   while(n >=dys[dt.mo-1])
   {
   n-=dys[dt.mo-1];
   if(++dt.da==13)
   {
   dt.mo=1;
   dt,yr++;
   }
   }
   dt.da=n;
   return dt;
   }
   int main()
   {
   Date olddate(1,1,2005);
   Date newdate;
   newdate=olddate+100;
   newdate.display();
   return 0;
   }


热点信息关注:



2014年计算机二级C++复习资料:重载双目运算符 https://www.cppentry.com/bencandy.php?fid=80&id=118778

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇2015年计算机二级C++考前练习及答.. 下一篇2014年计算机二级C++复习资料:重..