C++ C++;包含指针的对象的析构函数
我需要一些关于析构函数的说明 我知道,如果一个对象包含指向已分配内存的指针,那么该对象的析构函数应该对该指针调用C++ C++;包含指针的对象的析构函数,c++,destructor,C++,Destructor,我需要一些关于析构函数的说明 我知道,如果一个对象包含指向已分配内存的指针,那么该对象的析构函数应该对该指针调用delete。但是,如果一个对象包含一个对象,该对象包含指向已分配内存的指针,例如字符串 class Foo { string bar; }; Foo* foo = new Foo; delete foo; 我必须做什么才能确保字符串中的底层char[]被释放?字符串类析构函数负责任何清理。您不必担心。字符串类析构函数负责任何清理。您不必担心它。当您的类被销毁时,它的所有成
delete
。但是,如果一个对象包含一个对象,该对象包含指向已分配内存的指针,例如字符串
class Foo
{
string bar;
};
Foo* foo = new Foo;
delete foo;
我必须做什么才能确保字符串中的底层
char[]
被释放?字符串类析构函数负责任何清理。您不必担心。字符串
类析构函数负责任何清理。您不必担心它。当您的类被销毁时,它的所有成员(包括字符串)也会自动销毁
清理字符串
持有的任何内部资源(其中char数组是其他类不应依赖的实现细节)是字符串
对象的析构函数的责任。当类被析构函数时,它的所有成员(包括字符串
)也会自动销毁
清理字符串
所持有的任何内部资源(其中char数组是其他类不应依赖的实现细节)是字符串
对象的析构函数的责任。字符串
类型的析构函数负责清理其拥有的任何资源。对象的析构函数将调用成员对象的析构函数。字符串的析构函数负责清理它所拥有的任何资源。对象的析构函数将调用成员对象的析构函数。您可以查看如下规则。必须通过调用析构函数中的delete
来销毁使用new创建(并保留所有权)的任何对象 您可以查看以下规则。必须通过调用析构函数中的delete
来销毁使用new创建(并保留所有权)的任何对象 请您将类型修改为Foo*
好吗?Stackoverflow不允许我进行1个字符的更正;)请您将类型修改为Foo*
好吗?Stackoverflow不允许我进行1个字符的更正;)