这会被认为是糟糕的编程实践吗?
Would this be considered bad programming practice?
我遇到过这样一种情况,我想使用默认参数器作为非常大的遗留代码库中的引用以进行修复。
static bool _defaultValue = false;
bool SomeFunction(const SomeComplexObject& iObj, bool& isSomeVal = _defaultValue )
{
// ... code
}
我的问题是在命名空间中使用静态变量只是自己悬而未决。
这段代码将在发布之前进行审查,但我不确定拥有这样的悬空静态变量是否被认为是不好的做法。
如果没有该变量,则不能为引用使用默认值。 我的选择非常有限,无法进行其他更改以获得所需的效果。
这会被认为是"黑客不专业的编码"吗?
我的建议是:
- 删除全局变量。
- 不要对引用参数使用默认值。
- 创建一个只有一个参数的函数重载。
- 从第二个函数调用第一个函数。
bool SomeFunction(const SomeComplexObject& iObj, bool& isSomeVal)
{
// ... code
}
bool SomeFunction(const SomeComplexObject& iObj)
{
bool dummy;
return SomeFunction(iObj, dummy);
}
客户端代码可以调用适合其上下文的任何函数。
相关文章:
- 为什么rand()的使用被认为是不好的
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- 单引号在C++数学编程中是什么意思?
- 一个C头文件可以被认为是一个接口吗
- 为什么const char*和const char[]作为函数参数被认为是等价的
- 为什么12.0==11.999999999999999999被认为是真的
- 所有的openMp c++编程都是使用在GPU上运行的-fopenmp编译的吗
- 这会被认为是糟糕的编程实践吗?
- 为什么这被认为是恒定的?
- 抽象类/接口中的空方法是否被认为是一种好的做法?
- 如果我具有调用其其他实例之一的超载函数,它是否被认为是递归功能
- std::unique_ptr可以被认为是一个monad吗?
- C++ 指向类的指针和/或引用是否被认为是"movable"?
- 使用自定义宏来简化 cin 和 cout 语句等内容被认为是更好还是更差
- 使用成员函数更改对象或返回并分配它是否被认为是更好的做法?
- 我很难修复我认为是双重免费的东西
- 使用 #define 被认为是"bad practice"吗?
- 是一个被认为是不同类型的班级内部的正向声明
- 当使用 if(..) 时,为什么这被认为是一个好的编程实践
- 大量重载类构造函数是否被认为是糟糕的编程实践