В приложении C++ я создаю в разных точках класса Пользовательские объекты определенного класса Vehicle с оператором new и right после каждого экземпляра я помещаю их в вектор, который является свойством первого класса (т. Е. vector< Vehicle* > v1
).Удалить объекты, переносимые в вектор?
При запуске программы, скорее всего, мне нужно указать пункт, чтобы удалить объекты класса Vehicle. Должен ли я определенно удалить оператор? Если да, то как это сделать с вектором? Есть ли какая-либо предопределенная функция вектора для выполнения той же работы? Когда я удалю их, что происходит со свойствами класса Vehicle, которые по этому поводу являются указателями на другие объекты? Они также удалены?
Если нет необходимости удалять их до конца программы, они удаляются деструктором или должны удалять их «вручную»?
Никогда не используйте 'delete'. Никогда не используйте «указатели». Используйте «new» только в конструкторе умного указателя. –
@Kerrek: «Никогда не использовать указатели» неверно. * Никогда не используйте **, владея исходными указателями ***, будет более правильным. – Xeo
@Xeo: По-видимому, необработанный указатель не может действительно «владеть» самостоятельно - его собственность не является локальной, внешней информацией. –