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
,而不进行任何其他分配或做一些奇怪的事情,那么析构函数将正确地释放它。您不必释放它。您甚至可能根本不需要编写析构函数。