本文介绍了哪个版本的safe_delete更好?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

或任何其他更好的方法

推荐答案

清楚的函数,一个简单的原因。宏多次评估其参数。这可能有邪恶的副作用。此外,函数可以作为范围。没有什么比这更好:)

Clearly the function, for a simple reason. The macro evaluates its argument multiple times. This can have evil side effects. Also the function can be scoped. Nothing better than that :)

这篇关于哪个版本的safe_delete更好?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 21:41