我有一个类Bar
,它存储派生自BarItem
:
#include <list>
#include <memory>
class Bar {
public:
typedef std::shared_ptr<BarItem> item_ptr;
void add_item(item_ptr item) {
items_.push_back(item);
}
private:
std::list<item_ptr> items_;
};
我有另一个类Note
,它是BarItem
. Note
目前要添加我正在做的对象的副本:
Bar my_bar;
Note my_note;
my_bar.add_item(Bar::item_ptr(new Note(my_note)));
这有点难看;我想知道是否有更好的方法或自动化方法?