添加到运算符重载的列表

时间:2016-11-01 20:19:27

标签: c++ vector operator-overloading

建议我有以下课程:

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上使用运算符,但是有一种方法可以通过多个项目来实现它吗?

1 个答案:

答案 0 :(得分:2)

我建议不要有operator+副作用,因为它会让人感到困惑。

更好:

ListWrapper& operator+=(std::initializer_list<MyItem> l) {
    items.insert(items.end(), l);
    return *this;
}

然后你可以这样做:

lw += {item1, item2, item3};