我的问题与具体问题无关.Rather指的是编程风格.
在我读过的所有文章和书中都说如果你真的不需要你就不应该使用全局变量.因此,我更喜欢在全局空间中使用#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);
}
Run Code Online (Sandbox Code Playgroud)
其中"replace"是该功能的标识符.该类型的变量必须替换为其值编译时间.
我的问题:
1)人们如何在不使用全局常量的情况下实现漂亮和清晰的代码
2)我如何将这个想法建议到c ++标准(可选)
3)这个想法的缺点在哪里(可选)