#include<iostream>
using namespace std;
class X
{
int i;
public:
X(int a=0) : i(a) {}
friend X operator+ (const X& left,const X&right);
};
X operator+ (const X& left,const X&right) // Method 1
{
return X(left.i + right.i);
}
X operator+ (const X& left,const X&right) // Method 2
{
X temp(left.i + right.i);
return temp;
}
int main()
{
X a(2),b(3),c;
c=a+b;
c.print();
return 0;
}
在此代码中,运算符 + 通过 2 种不同的方法重载。
我的问题是这些方法之间有什么区别,哪些应该被认为更实用?