C++ 内存管理:谁负责

2024-01-15

假设我正在编写一个 C++ 类。该类具有以下字段:

  • 一个整数。
  • 一个 C++ 字符串
  • 动态调整大小的整数数组和指向它的指针。

在析构函数中,我知道我必须delete我之前通过电话索取的任何东西new。在这种情况下,我知道我必须释放用于 int 数组的空间。那么字符串的内存呢?我知道我不负责释放它的内存,因为我没有调用new分配它,但是如何释放它呢? C++什么时候调用它的析构函数?


那么字符串的内存呢?我知道我不负责释放它的内存,因为我没有调用 new 来分配它,但是它是如何被释放的呢?

你的类的析构函数隐式调用std::string的析构函数依次处理其自身资源的释放。没什么可担心的。

C++什么时候调用它的析构函数?

当你的类的对象的析构函数被调用时。这意味着当该对象超出范围或delete当它被创建时,已在指向它的指针上调用new.

我以某种方式理解你的问题。你可能会认为new递归地new是你们班的成员。不,它不是那样做的。除非你的班级本身这样做new您需要调用成员变量delete在他们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 内存管理:谁负责 的相关文章

随机推荐