我遇到一种情况,我想在一个非常大的旧版代码库中使用默认参数作为参考,以进行修复。
static bool _defaultValue = false;
bool SomeFunction(const SomeComplexObject& iObj, bool& isSomeVal = _defaultValue )
{
// ... code
}
我的问题是在名称空间中使用静态变量,而该名称空间本身只是悬而未决。
此代码将在发货之前进行检查,但是我不确定是否有这样的悬挂静态变量是否被视为不良做法。
没有变量,您将没有默认值作为参考。我的选择非常有限,无法进行其他更改以达到理想的效果。
这会被认为是“骇人的非专业编码”吗?
答案 0 :(得分:9)
我的建议是:
bool SomeFunction(const SomeComplexObject& iObj, bool& isSomeVal)
{
// ... code
}
bool SomeFunction(const SomeComplexObject& iObj)
{
bool dummy;
return SomeFunction(iObj, dummy);
}
客户端代码可以调用适合其上下文的任何函数。