C ++中的运算符重载返回

时间:2014-03-07 16:33:06

标签: c++ operators operator-overloading

我是C ++编程的新手,我想返回默认在运算符重载中传递的对象。请帮助我......

例如

adi operator+(adi& s2){return s1;} 

main()
{
  s3=s1+s2;
}

2 个答案:

答案 0 :(得分:0)

您要么将operator +实现为类成员

class A {
  A operator+(const A& rhs) const {
    A result; // do something with a
    // Pick one
    return result; // returns new object
    return rhs; // returns rhs parameter
    return *this; // returns current object
  }
};

或作为非会员

A operator+(const A& a, const A& b) {
    A result; // do something with a
    return result; // returns new object
}

答案 1 :(得分:0)

它将采用以下方式

adi operator+( const adi &s2) const
{ 
   adi temp;
/* some calculations with temp*/ 

   return temp;
} 

语义如下:您创建一个新对象,该对象将调用运算符this的对象和作为参数传递给运算符的对象的总和。原始物体和文物都不应该改变。

此外,操作员可以定义为非成员函数。例如

adi operator+( const adi &s1, const adi &s2)
{ 
   adi temp;
/* some calculations with temp*/ 

   return temp;
}