C+中的运算符重载+;返回 我在C++编程中是新手,我想返回在运算符重载中默认通过的对象。请在这方面帮助我

C+中的运算符重载+;返回 我在C++编程中是新手,我想返回在运算符重载中默认通过的对象。请在这方面帮助我,c++,operators,operator-overloading,C++,Operators,Operator Overloading,例如 您可以将运算符+实现为类成员 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 }

例如


您可以将运算符+实现为类成员

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
}

它将如下所示

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;
} 

不确定你到底在问什么,但是你的操作符应该接受两个参数。我还建议您通过
const
reference获取它们。请看问题。它有关于重载运算符的更多信息。caebli3的链接很好-具体来说,在顶部答案中查找“二进制运算符”标题。当我使用*时,返回这个。我成功了。我已成功返回s1,它已隐式传递给重载运算符函数。谢谢。我有个概念。我必须使用return*这个;谢谢你的帮助。但是,我得到了。我要用return*这个;返回隐式传递的s1。
adi operator+( const adi &s1, const adi &s2)
{ 
   adi temp;
/* some calculations with temp*/ 

   return temp;
}