Я хочу хранить элементы (назовем его E), но я не знаю, что я должен хранить их как объекты или как указатели, указывающие на динамически выделенные объекты.Что лучше: хранить объекты и хранить указатели?
(. А, В, С и т.д. объекты хранить ссылку разыскиваемого Е)
версии A:
E e;
store.Add(e); //This time the store contains objects.
В этой версии элемент будет скопирован в но это проще в обращении. (Объекты будут уничтожены, когда родительский объект уничтожается)
версия Б:
E* e = new E();
store.Add(*e); //This time the store contains references.
/*I chose references instead of pointers,
so I have to use pointers only at allocating and deallocating.*/
В этой версии нет копии CONSTR. но мне нужно удалить объекты в деструкторе родительского объекта.
Что лучше и почему? Что может вызвать больше ошибок и что более эффективно?
У вас есть C++ 11? – Danh
Поскольку этот вопрос касается * магазинов *, [обрезка объектов] (http://stackoverflow.com/q/274626/3545273) в стандартных контейнерах также следует заметить. –