假设我正在编写一个 C++ 类。该类具有以下字段:
- 一个整数。
- 一个 C++ 字符串
- 动态调整大小的整数数组和指向它的指针。
在析构函数中,我知道我必须delete
我之前通过电话索取的任何东西new
。在这种情况下,我知道我必须释放用于 int 数组的空间。那么字符串的内存呢?我知道我不负责释放它的内存,因为我没有调用new
分配它,但是如何释放它呢? C++什么时候调用它的析构函数?
那么字符串的内存呢?我知道我不负责释放它的内存,因为我没有调用 new 来分配它,但是它是如何被释放的呢?
你的类的析构函数隐式调用std::string
的析构函数依次处理其自身资源的释放。没什么可担心的。
C++什么时候调用它的析构函数?
当你的类的对象的析构函数被调用时。这意味着当该对象超出范围或delete
当它被创建时,已在指向它的指针上调用new
.
我以某种方式理解你的问题。你可能会认为new
递归地new
是你们班的成员。不,它不是那样做的。除非你的班级本身这样做new
您需要调用成员变量delete
在他们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)