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