C++ 运算符重载

来源:互联网 发布:用网络看电视需要什么 编辑:程序博客网 时间:2024/05/16 02:14

运算符重载

运算符重载:C++能将运算符(+-*/等)的定义扩展到运算分量是对象的情况,并且重载后运算符的运算顺序和优先级不变,这样使得C++代码更直观,更易读。

示例

Class A

{

……

}

a,b,c,d;

d=a+b*d

双目运算符重载

非成员形式重载红色及成员形式重载金色

class A

{

   public:

      A(int s){a=s;}

friend A operator +( A  &x , A & y);  //两个形参对象

A operator –(A &y)                //一个形参对象

{

int t=a-y.a;

   A r(t);

return r ; 

}

private:

int a;

};

A operator +( A  &x , A & y)

{

   int m= x.a+y.a;

A  n(m);

return n; 

}

单目运算符(增量运算符)重载

    

前增量重载(红色)、后增量重载(橙色

class A

{

   public:

      A(int s){a=s;}

      A &operator ++ ()

      {

  a++;

  return *this;

}

A operator ++ (int)

{

   A temp(*this);

   a++;

   return temp;

}

private:

int a;

};

赋值运算符重载

A & operator = ( A &s)

{

a=s.a;

return *this;

}

本课题目

编写一个复数类Complex和一个整数类Increase,其中复数类基本属性是实部和虚部,整数类的基本属性是数值大小,自己构建成员函数让程序完成以下主函数的各执行语句。

void main()

{

Complex a(3,2),b(2,3),c;

     c=a+b;      //’+’运算符重载,成员函数形式实现

     c.print();    //输出复数ai+b

     c=a-b;      //’-运算符重载,非成员函数形式实现

     c.print();

     Increase d(100);

     ((++d)++)++.print();//前增量、后增量运算符重载,成员函数形式实现

     d.print();        //输出整数大小

   

原创粉丝点击