Если я сделаю delete[] items
, будет ли он также безопасно удалять текст, сохраненный в items
?
Не с опубликованным кодом.
Или мне нужно delete
их отдельно?
Да.
Если вы пытаетесь узнать, как работает распаковка / освобождение памяти, полезно понять проблемы и изучить как правильно использовать new
и delete
. Важно знать о правиле трех и соблюдать его при управлении динамической c памятью.
Если вы пытаетесь привести приложение в рабочее состояние, оно будет лучше избегать использования сырых указателей. Используйте контейнеры из стандартной библиотеки.
class Menuitem
{
private:
std::string text; // No char*
friend class Menu;
};
class Menu
{
private:
std::string title; // No char*
std::vector<Menuitem> items; // No MenuItem*
int identation = 0;
int amount = 0;
};
Тогда в коде приложения возникнет меньше проблем.