我一直在重写这样的运营商:
function getmoviex(moviex) {
$("#moviex_list").text("");
$.each(moviex, function (i) {
$("#moviex_list").append("<li>" + this + "</li>");
});
}
class MyClass {
public:
...
MyClass operator+(const MyClass&) const;
private:
int some_number = 5;
}
但今天我意识到你也可以使用'friend'关键字创建运营商:
MyClass MyClass::operator+(const MyClass& rhs) const
{
return MyClass(some_number + rhs.some_number);
}
class MyClass {
public:
...
friend MyClass operator+(const MyClass&, const MyClass&);
private:
int some_number = 5;
}
考虑到我需要左侧和右侧操作员以及我(也尝试)遵循核心指南,这将是首选方式?
答案 0 :(得分:0)
首选的方法是不要把它变成朋友:
MyClass operator+(MyClass lhs, Myclass const& rhs)
{
return lhs += rhs;
}
当然,这确实依赖于operator+=
,但这是更基本的操作。 +=
改变其左侧,应该是其成员。