gpt4 book ai didi

c++ - 命名空间中的类名冲突

转载 作者:行者123 更新时间:2023-11-28 07:17:33 30 4
gpt4 key购买 nike

我有一个不属于任何命名空间的类

A 类(*)。

我还有另一个同名但属于命名空间的类

命名空间 B 的类 A 的一部分。

在 xyz.cpp 中,我有以下内容:

#include "..."

using namespace B;
// some code
A::var; // This A should be part of (*) and not namespace B.
// some code

但是因为我有冲突的类名,所以我得到了错误。有办法解决这个问题吗?

最佳答案

using namespace 关键字将指定命名空间中的所有名称导入全局命名空间。由于您已经在全局命名空间中声明了一个 class A,这会导致冲突。

解决方案:不要使用using namespace B

这实际上就是您正在做的事情:

namespace GLOBAL {
class A { ... };
};

namespace B {
class A { ... };
};

using namespace B /* export 'B::A' into 'GLOBAL' resulting in a conflict; */ ;

关于c++ - 命名空间中的类名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19995505/

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