以这两个前面的线程为例
第一个线程: 为什么重载的赋值运算符返回对类的引用?
第二个线程: 为什么复制赋值运算符必须返回一个引用/常量引用?
重载赋值运算符的返回类型是类还是对类的引用?我都见过:
Point& Point::operator = (const Point& sourcePoint)
{
// As in the first thread I pasted above
return *this;
}
和
Point Point::operator = (const Point& sourcePoint)
{
// As in the second thread I pasted above
return *this;
}
哪个是对的?
同样,有什么区别:
int exFunction()
{
int i = 5;
int* iPtr = &i;
return *iPtr;
}
相对:
int& exFunction2()
{
int j = 5;
int* jPtr = &j;
return *jPtr;
}
谢谢!