+ -
当前位置:首页 → 问答吧 → 运算符重载

运算符重载

时间:2011-11-29

来源:互联网

#include <iostream>
using   namespace   std;
class   Cload
{     int   val;
public:
      Cload(){val=0;}
      Cload(int   v){val=v;}
      void   print(){cout < < "member   data   is " < <val < <endl;}
      Cload&operator+(int   i);
      Cload&operator+(Cload&op);
      Cload&operator-(int   i);
      Cload&operator-(Cload&op);
};
Cload&Cload::operator+(int   i)
{
val+=i;
return   *this;}
Cload&Cload::operator+(Cload&op)
{
op.val=val;
return   *this;
}
Cload&Cload::operator-(int   i)
{
val+=i;
return   *this;
}
Cload&Cload::operator-(Cload&op)
{
val+=op.val;
return   *this;
}
void   main()
{
Cload   L1(10),L2,L3(3);
L1.print();
L2=L1+L3;
L2.print();
}

这个程序解释一下,L2=L1+L3是什么意思

作者: tingfengx   发布时间: 2011-11-29

Cload&Cload::operator+(Cload&op)
{
op.val=val;
return *this;
}

作者: lthyxy   发布时间: 2011-11-29

C/C++ code
----------->  L2 = L1.operator+( L3 );   ---------> L2.operator=( L1.operator+( L3 ) );

作者: mougaidong   发布时间: 2011-11-29

L2=L1+L3; 
就是等价于
Cload temp = L1.operator+(L3);
L2 = temp;

作者: qscool1987   发布时间: 2011-11-29