我的问题与特定问题无关。而是指编程风格。
在我读过的所有文章和书籍中都说如果你真的不需要,就不应该使用全局变量。因此,我更喜欢在全局空间中使用#define而不是const变量类型。但是#defines有一个可怕的缺陷不能放在命名空间中。
我经常希望 c++ 具有允许此类行为的功能,例如命名空间中的#define。
例子:
namespace Space
{
replace type variable = constructor(args);
replace type2 variable2(args);
}
void function(type variable);
int main()
{
function(Space::variable);
}
其中“替换”是该功能的标识符。并且这种类型的变量必须用他的值编译时间替换。
我的问题:
1)人们如何在不使用全局常量的情况下实现美观清晰的代码
2)我如何向 c++ 标准提出这个想法(可选)
3)这个想法的缺点在哪里(可选)