gpt4 book ai didi

c++ - 为什么没有 C++ 的 DELETE 宏的原因

转载 作者:IT老高 更新时间:2023-10-28 22:05:46 25 4
gpt4 key购买 nike

是否有任何好的理由(也许“宏是邪恶的”除外)不使用以下宏?

#define DELETE( ptr ) \
if (ptr != NULL) \
{ \
delete ptr; \
ptr = NULL; \
}

#define DELETE_TABLE( ptr ) \
if (ptr != NULL) \
{ \
delete[] ptr; \
ptr = NULL; \
}

最佳答案

我个人更喜欢以下的

template< class T > void SafeDelete( T*& pVal )
{
delete pVal;
pVal = NULL;
}

template< class T > void SafeDeleteArray( T*& pVal )
{
delete[] pVal;
pVal = NULL;
}

它们最终编译成完全相同的代码。

可能有一些奇怪的方法可以打破#define 系统,但就个人而言(这可能会让我感到痛苦;)我认为这不是什么大问题。

关于c++ - 为什么没有 C++ 的 DELETE 宏的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1265666/

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