У меня есть класс 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)));
который немного некрасиво; Я хотел бы знать, есть ли лучший способ или способ автоматизировать это?
какой-либо причине вы не делаете 'my_bar.add_item (Bar :: item_ptr (my_note));' –
@Hans my_note является Примечание объект не является указателем на Примечание. –