【发布时间】:2018-04-12 06:28:11
【问题描述】:
假设有这段代码:
struct Tester
{
int value = 0;
void operator=(const Tester& original)
{
value = original.value;
}
};
覆盖 operator= 的目的是像普通赋值运算符一样使用它。这个函数肯定会把参数的“值”放到宿主对象的“值”中。
但是,其他程序员建议使用:
Tester& operator=(const Tester& original)
{
value = original.value;
return *this;//edited
}
以 Tester 的返回类型作为参考。第一个函数的作用完全相同。为什么以及如何使用?
【问题讨论】:
-
用于在一个函数调用中赋值。更好的编程实践。
标签: c++