C++ 内存泄漏C++;一串

C++ 内存泄漏C++;一串,c++,string,C++,String,我有一节课 class test{ public: somedatahere test(); ~test(); private: string mystring; } 在这个类中,构造函数读取变量mystring中的文件内容。我的问题是: mystring是在类销毁时释放还是我必须手动释放?如何释放我的字符串?您只需释放分配的内容即可新建应与删除匹配,而新建[]应与删除[]匹配 如果您两个都不做,那么行为良好的类就不应该要求您做另

我有一节课

class test{

   public:
      somedatahere
      test();
     ~test();
   private:
       string mystring;

}
在这个类中,构造函数读取变量mystring中的文件内容。我的问题是:


mystring是在类销毁时释放还是我必须手动释放?如何释放我的字符串?

您只需释放分配的内容即可<代码>新建应与
删除
匹配,而
新建[]
应与
删除[]
匹配

如果您两个都不做,那么行为良好的类就不应该要求您做另一个。 是的,标准库表现良好


所以不,你什么都不用做。让
std::string
实例自身清理。(当然,遵循它的示例,并确保您自己的类也这样做)

因为
mystring
是对象的一部分,所以当对象这样做时,它将超出范围。没有必要“手动”释放它,事实上你也不能


如果
mystring
是分配给
new
(或
new[]
)的内存指针,则情况会有所不同,然后您必须手动
delete
(或
delete[]
)它将从析构函数中释放。

假设构造函数只直接分配到
mystring
,而不进行任何其他分配或做一些奇怪的事情,那么析构函数将正确地释放它。

您不必释放它。您甚至可能根本不需要编写析构函数。