使用不同文件中的命名空间成员
Usage of a namespace member from a different file
在我的项目中,我有一个现有的文件:
ABC_现有.h
namespace Cpld_A
{
const int XXX;
}
ABC_Existing.cc使用变量XXX执行"使用命名空间Cpld"。
我创建了一个新文件:
XYZ_新建.h
namespace Cpld_B
{
const int XXX;
}
我正试图在XYZ_New.cc中使用它。当我编译时,我收到一个错误,说Cpld_A和Cpld_B之间的变量XXX声明不明确。ABC_Existing和XYZ_New之间没有关系。并且ABC_Existing.h没有(直接或间接)包含在XYZ_New.h/c中。但是,所有这些文件都在同一个文件夹中,并且是一起构建的。
这个问题怎么会发生,我该如何解决?感谢你的帮助!!!
最有可能的是,歧义是因为相同的名称空间以及其中的符号名称都是通过某种间接的模糊方式导入到当前名称空间中的。
解决歧义的一个简单方法是在引用符号时使用符号的完全限定名称:
Cpld_A::XXX
Cpld_B::XXX
相关文章:
- 命名空间 std 没有成员any_of
- 为什么 Clang 在命名空间'std'中没有名为 'copy' 的成员给出错误
- 初始化命名空间中的变量是否类似于将它们初始化为类成员?
- 在 c++ 中使用类的命名空间定义类的成员
- Catalina C++:使用<cmath>标头产生错误:全局命名空间中没有名为 'signbit' 的成员
- 命名空间 Win 没有成员"simpleControl"是什么意思
- Visual Studio 2017:命名空间"System"没有成员"Windows"
- 如何从嵌套在命名空间中的类调用成员函数?
- 成员的结构与命名空间的潜在范围
- 类成员函数在其命名空间之外定义
- Typedef 不是命名空间的成员
- 无法解析命名空间成员"线程"
- C++中的命名空间成员(使用与不使用)
- 使用不同文件中的命名空间成员
- 非限定名称查找查找内联命名空间成员
- 用户声明的命名空间成员
- ISO c++草案(n3290)中的一点:3.4.3.2/1命名空间成员
- 试图通过using-declaration定义命名空间成员
- Linux CLion 无法解析命名空间成员
- C++命名空间成员在不同文件中的访问如何?"namespace std"如何实施?