【发布时间】:2009-07-21 17:16:58
【问题描述】:
假设我有一个名为InitFoo 的免费函数。我想保护这个函数不被意外调用多次。没有多想,我写了以下内容:
void InitFoo()
{
{
static bool flag = false;
if(flag) return;
flag = true;
}
//Actual code goes here.
}
不过,这看起来像个大疣。 InitFoo 不需要需要保留任何其他状态信息。有人可以建议一种方法来实现相同的目标而不会丑陋吗?
当然,宏不算数。
【问题讨论】:
-
无论您最终实施哪种解决方案,都选择它作为正确答案。如果另一个答案更受欢迎,它会在其下方冒泡。