gpt4 book ai didi

c++ - 了解析构函数

转载 作者:行者123 更新时间:2023-11-27 22:45:43 25 4
gpt4 key购买 nike

我有以下简单类 Foo:

class Foo {

};

然后我尝试运行以下单元测试代码:

Foo* foo = new Foo;

Assert::IsNotNull(foo);

delete foo;

Assert::IsNull(foo); //why is it not null?? I deleted it.

当我删除 foo 时,这个对象的内存被释放,所以 foo 应该指向 nullptr

为什么foo删除后不为null?

最佳答案

删除不会改变指针的值,只会释放它指向的内存。删除后,各自的指针失效。 (删除也会调用析构函数)。

删除一个有效的指针必须总是成功,否则就是未定义的行为。

关于c++ - 了解析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43299114/

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