二级C++复习资料:作为类成员函数的重载

机构:武汉赛比尔IT教育 时间:2015-12-19 点击:603

  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;

  }

  更多资讯:武汉计算机等级培训学校

返回顶部