考虑代码:
namespace Jack
{
char ch{'A'};
void show(){ std::cout<<ch };
}
int main()
{
Jack::show();
return 0;
}
在这种情况下,内存分配给Jack::ch
的时间是多少?在声明命名空间Jack
或声明Jack::show()
?
答案 0 :(得分:2)
ch
对象位于全局范围内。全局范围中的类/类型的实例在启动时被构造,初始化,分配,等等,并且它们的范围在执行的生命周期中存在。
对象的命名空间仅与对象的名称相关。对象的构造或销毁不受对象名称所在的任何命名空间的影响,而是受其范围的影响。