gpt4 book ai didi

c++ - 哪个版本的 safe_delete 更好?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:35 28 4
gpt4 key购买 nike

#define SAFE_DELETE(a) if( (a) != NULL ) delete (a); (a) = NULL;

template<typename T> void safe_delete(T*& a) {
delete a;
a = NULL;
}

或者其他更好的方式

最佳答案

我不会说两者都不是,因为两者都会给您一种虚假的安全感。例如,假设您有一个函数:

void Func( SomePtr * p ) {
// stuff
SafeDelete( p );
}

您将 p 设置为 NULL,但函数外的 p 拷贝不受影响。

但是,如果您必须这样做,请使用模板 - 宏总是有可能影响其他名称。

关于c++ - 哪个版本的 safe_delete 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540920/

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