首页 > Coding > Linton法则

Linton法则

2014年12月15日 发表评论 阅读评论

当我们在实现一个带有引用参数的函数时,可能会将该参数的地址存储在该函数作用域外的某个地方。如下代码所示:

MyObject* pObj = NULL;
MyObject tempObj;
void Fun(const MyObject& obj)
{
pObj = &obj;
}

tempObj.Release();

pObj.DoSomething();

当变量tempObj释放后,pObj仍保留了其地址。这将导致pObj变为空悬指针。

为了避免此类BUG出现,Mark Linton提出了如下法则:

函数中,禁止将引用参数的指针保存到函数作用域外。如果确有需要,需要将引用参数声明为指针参数

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.