gpt4 book ai didi

c++ - 当外部命名空间具有同名成员时访问未命名命名空间的成员

转载 作者:行者123 更新时间:2023-11-30 01:27:04 28 4
gpt4 key购买 nike

这是测试代码

extern "C" {int printf(const char *, ...);}
namespace PS
{
int x = 10; // A
// some more code

namespace {
int x = 20; // B
}
// more code
}

int main()
{
printf("%d", PS::x); // prints 10
}

有什么方法可以在 main 中访问内部(未命名)命名空间的 x 吗?

我不想更改 PS 中的代码。如果代码看起来非常不切实际,我们深表歉意。

P.S:我倾向于经常使用名称 x

最佳答案

没有。指定命名空间的唯一方法是通过名称,内部命名空间没有名称。

假设您不能重命名任何一个变量,您可以重新打开内部命名空间并添加一个不同名称的访问器函数或引用:

namespace PS {
namespace {
int & inner_x = x;
}
}

printf("%d", PS::inner_x);

关于c++ - 当外部命名空间具有同名成员时访问未命名命名空间的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412537/

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