Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

2年前关闭。



Improve this question




我遇到这样的情况,我想在一个非常大的旧版代码库中使用默认参数作为引用,以进行修复。
static bool _defaultValue = false;
bool SomeFunction(const SomeComplexObject& iObj, bool& isSomeVal = _defaultValue )
{
        // ... code
}

我的问题是在 namespace 内使用静态变量本身只是悬而未决。

该代码将在发货前进行检查,但我不确定是否有这样的悬挂静态变量是否被视为不良做法。

没有变量,您将没有默认值作为引用。我的选择非常有限,无法进行其他更改以获得所需的效果。

这会被视为“骇人的非专业编码”吗?

最佳答案

我的建议是:

  • 删除全局变量。
  • 不要对引用参数使用默认值。
  • 创建仅具有一个参数的函数重载。
  • 从第二个函数中调用第一个函数。

  • bool SomeFunction(const SomeComplexObject& iObj, bool& isSomeVal)
    {
       // ... code
    }
    
    bool SomeFunction(const SomeComplexObject& iObj)
    {
       bool dummy;
       return SomeFunction(iObj, dummy);
    }
    

    客户代码可以调用适合其上下文的任何函数。

    关于c++ - 这会被视为不良的编程习惯吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50959699/

    10-10 15:37