【发布时间】:2016-10-31 20:17:29
【问题描述】:
我有一个简单的问题:如何重载 += 运算符以返回一个字符串。这是我尝试过的方法,但没有成功。
Student& Student::operator+=(const Student& RHS)
{
string temp_string;
temp_string = "( " + RHS.get_name() + ", " + RHS.get_grade() + ") ";
return temp_string;
}
【问题讨论】:
-
将返回类型更改为
std::string? -
@NathanOliver 你是怎么想到这个主意的? o_o
-
请记住,这将是令人困惑和意想不到的。看起来您甚至没有修改当前对象。我非常建议不要这样做。
-
并且不要返回临时引用...您正在劫持 += 运算符。不建议。
-
在写这篇文章之前,你应该退后一步,问问自己将一个学生添加到另一个学生意味着什么。您很可能希望使用命名函数而不是这样的运算符重载。
标签: c++ overloading operator-keyword