Умные указатели, которые являются членами класса, все еще автоматически освобождены? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Умные указатели, которые являются членами класса, все еще автоматически освобождены? [закрыто]

Сообщение Anonymous »

Я разрабатываю игру в C ++ и использую векторы умных указателей для хранения некоторых данных. Игра работает и работает без проблем, но мне было интересно, на самом деле является автоматически освобождена память, удерживаемая по указателям или нет. Ниже приведена упрощенная версия моей структуры кода в качестве примера. (который наследует от врага ). В структуре у меня есть вектор интеллектуальных указателей типа врага , а в игре я создал уровень в качестве члена следующим образом:

Код: Выделить всё

#include 
#include 

class Enemy
{
};

class Grunt : public Enemy
{
public:
Grunt() {}
~Grunt() {}
};

struct Level
{
std::vector eVector;
};

class Game
{
private:
Level level1 = {{std::make_shared()}};
};

int main()
{
Game g;
}
game объект создается в моем main () , который используется для начала цикла игры.
На протяжении всего моего кода я использую level1 для доступа к вектору . Мой вопрос заключается в том, что, поскольку это является переменной участника классной игры и, следовательно, никогда не выходит из сферы действия, умные указатели в векторе все еще автоматически освобождены или нет? Если нет, как бы мне лучше всего освободить их вручную?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ally-freed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»