我听说它被用作重载运算符+
class MyClass
{
int x;
public:
MyClass(int num):x(num){}
MyClass operator+(const MyClass &rhs)
{
return rhs.x + x;
}
};
int main()
{
MyClass x(100);
MyClass y(100);
MyClass z = x + y;
}
Run Code Online (Sandbox Code Playgroud)
这真的是使用一元加运算符还是它真的是一个二元+运算符?
Joh*_*itb 19
这不是重载和使用一元+ ..你需要使一个自由函数或使成员函数取0参数
class MyClass
{
int x;
public:
MyClass(int num):x(num){}
MyClass operator+() const
{
return *this;
}
};
int main() {
MyClass x = 42;
+ x;
}
Run Code Online (Sandbox Code Playgroud)