使用不同文件中的命名空间成员

Usage of a namespace member from a different file

本文关键字:命名空间 成员 文件      更新时间:2023-10-16

在我的项目中,我有一个现有的文件:

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