Я пытаюсь выучить C ++, и у меня есть небольшая проблема.У меня есть несколько экземпляров класса Foo.И у меня есть FooContainer с vector<Foo> data
с методом
void FooContainer::add(Foo item) {
this->data.push_back(item)
}
Я хочу, чтобы FooContainer был настоящим держателем элементов Foo.Я не понимаю, как лучше передать элементы из main в Foo.
В моем main у меня есть:
Foo item(...);
container.add(item);
Таким образом, у меня есть объект, выделенный в mainи я передаю копию в контейнер.У меня есть элемент, существующий в 2-х местах, поэтому я должен удалить его в главном после всех add()
.
Или лучше иметь указатель в главном, создать элемент с ключевым словом new
и передать указатель?И таким образом Container.data должен быть vector<Foo*>
?
Или, опять же, иметь элемент в main, добавить в контейнер по ссылке, а не удалить его в main?
Я немного запутался.
РЕДАКТИРОВАТЬ
в образовательных целях я не хочу использовать c ++ 11 или улучшать общий указатель: мои идеи путаются в указателе, справке и основных вещахПеред тем, как перейти к расширенным аргументам (даже если они более элегантны), я хочу иметь четкую основу того, что я делаю!