Использование члена пространства имен из другого файла - PullRequest
0 голосов
/ 16 февраля 2012

В моем проекте у меня есть существующий файл:

ABC_Existing.h

    namespace Cpld_A
    {
       const int XXX;
    }

И ABC_Existing.cc использует переменную XXX, выполняющую «using пространство имен Cpld».

Я создал новый файл:

XYZ_New.h

    namespace Cpld_B
    {
       const int XXX;
    }

И я пытаюсь использовать его в XYZ_New.cc.Когда я компилирую, я получаю ошибку, говоря неоднозначное объявление переменной XXX между Cpld_A и Cpld_B.Между ABC_Existing и XYZ_New нет никакой связи.И ABC_Existing.h не включен (прямо или косвенно) в XYZ_New.h / cc.Но все эти файлы находятся в одной папке и собираются вместе.

Как может возникнуть эта проблема и как ее решить?Ценю вашу помощь !!!

1 Ответ

2 голосов
/ 16 февраля 2012

Скорее всего, двусмысленность заключается в том, что и те же самые пространства имен и, следовательно, имена символов внутри импортируются в ваше текущее пространство имен каким-то непонятным образом.

Простой способ устранить неоднозначность - использовать полные имена символов при обращении к ним:

Cpld_A::XXX     
Cpld_B::XXX     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...