gpt4 book ai didi

c++ - c++中有指针的析构函数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:49 24 4
gpt4 key购买 nike

string * str=new string;
delete str;

当我删除指向一个对象的“str”时,是否会调用两个析构函数 - 一个用于指针本身,一个用于它指向的对象?

指针的析构函数会做什么?

最佳答案

delete 只会导致给定指针指向的对象被销毁(在本例中为 string 对象。指针本身,由 表示str,具有自动存储持续时间,当它像任何其他局部变量一样超出范围时将被销毁。

但是请注意,非类类型没有析构函数。因此,即使当您对非类类型使用 delete 时,也不会调用析构函数,但是 指针超出范围时,它会像通常发生在任何其他 < em>automatic 变量(意味着指针刚刚到达其生命周期的末尾,尽管指针指向的内存不会被释放 until 您使用 delete 来明确地释放它。)。

关于c++ - c++中有指针的析构函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com