У меня вопрос простой. Если у меня есть такой код:О существовании указателей
void Holder::Add()
{
Dish * obj = new Dish(this->screen_width, this->screen_height);
this->dish_array.push_back(obj);
}
где dish_array объявлен как так:
vector <Dish*> dish_array;
будет объект, который «* OBJ» указатель указывает на «существование» вне этой функции?
Пожалуйста, не храните необработанные указатели в контейнерах, если вы * абсолютно * не можете избежать этого (что крайне редко), это кошмар обслуживания и большой источник ошибок/утечек. Предпочитайте контейнеры, в которых хранятся либо простые объекты ('vector'), либо, по крайней мере, интеллектуальные указатели ('vector >' или 'vector >'). В качестве примера к тому, что я только что сказал: ваши две строки кода ('new/push_back') могут течь из памяти, поскольку они не являются безопасными для исключений. И это только верхушка айсберга. –
syam
@JapeCorbel Я забыл сказать, славное название :) – feralin