作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
string * str=new string;
delete str;
当我删除指向一个对象的“str”时,是否会调用两个析构函数 - 一个用于指针本身,一个用于它指向的对象?
指针的析构函数会做什么?
最佳答案
delete
只会导致给定指针指向的对象被销毁(在本例中为 string
对象。指针本身,由 表示str
,具有自动存储持续时间,当它像任何其他局部变量一样超出范围时将被销毁。
但是请注意,非类类型没有析构函数。因此,即使当您对非类类型使用 delete
时,也不会调用析构函数,但是 当 指针超出范围时,它会像通常发生在任何其他 < em>automatic 变量(意味着指针刚刚到达其生命周期的末尾,尽管指针指向的内存不会被释放 until 您使用 delete
来明确地释放它。)。
关于c++ - c++中有指针的析构函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436797/
我是一名优秀的程序员,十分优秀!