建议我有以下课程:
class ListWrapper
{
private: vector<MyItem> items;
public : MyItem& operator+(MyItem& itm){items.push_back(itm);}
};
class MyItem
{
private: int data;
};
是否可以使用+运算符重载运算符向MyList添加项目?
即。 :
MyItem item1,item2,item3;
ListWrapper lw;
lw + item1 + item2+ item3;
我可以在ListWrapper上使用运算符,但是有一种方法可以通过多个项目来实现它吗?
答案 0 :(得分:2)
我建议不要有operator+
副作用,因为它会让人感到困惑。
更好:
ListWrapper& operator+=(std::initializer_list<MyItem> l) {
items.insert(items.end(), l);
return *this;
}
然后你可以这样做:
lw += {item1, item2, item3};