建议我有以下课程:
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上使用运算符,但是有没有办法像这样的示例那样通过多个项目使用它?
最佳答案
我建议不要有副作用的operator+
,因为这很令人困惑。
更好:
ListWrapper& operator+=(std::initializer_list<MyItem> l) {
items.insert(items.end(), l);
return *this;
}
然后,您可以执行以下操作:
lw += {item1, item2, item3};
关于c++ - 添加到运算符(operator)重载列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40367980/