我的代码中的部分:
class Menuitem
{
private:
char* text;
friend class Menu;
};
class Menu
{
private:
char* title;
Menuitem* items;
int identation = 0;
int amount = 0;
};
如果执行delete[] items
,是否还会安全删除保存在text
中的items
?还是我需要分别删除它们?
delete[] items
,是否还会安全删除保存在items
中的文本?没有发布的代码。或者我是否需要分别
delete
他们?
是[如果您试图学习内存分配/解除分配的工作原理,那么最好先了解问题并学习如何正确使用
new
和delete
。如果要使应用程序正常工作,最好避免使用原始指针。使用标准库中的容器。
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; };
然后,您不必担心应用程序代码中的问题。