建议我有以下课程:

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/

10-09 19:53