gpt4 book ai didi

c++ - 嵌套命名空间 : accessing value from the inside namespace

转载 作者:行者123 更新时间:2023-12-04 16:57:43 31 4
gpt4 key购买 nike

我在 C++ 中使用嵌套命名空间并尝试访问内部命名空间内的外部命名空间的值,但它不起作用?有人可以解释为什么吗?

代码:

#include <iostream>
using namespace std;

namespace Test
{
int x = 20;
namespace InTest
{
int x = 30 + x;
}
}

int main()
{
using namespace Test::InTest;
cout << "X = " << x << endl;
return 0;
}

输出:
X = 30

对于上面的代码片段,我期望 x 的值为“50”,但我得到的是“30”。有人可以解释一下我在这里做错了什么吗?

操作系统:windows,
工具:代码块
编译器:g++ (mingw)

最佳答案

int x = 30 + x;
x右边的表达式是指 Test::InTest::x因为它被认为已经声明。所以你在 x 上加 30自己的值(value),等于 0在启动时由于静态对象的零初始化(根据 [basic.start.init]/2 在任何其他初始化之前发生)。

关于c++ - 嵌套命名空间 : accessing value from the inside namespace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26866632/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com