Определение класса в пространстве имен выходит на обед, никогда не возвращается - PullRequest
1 голос
/ 24 марта 2011

У меня есть следующее:

namespace A {
 /* Class prototype */
 class B {
  private:
   type member_1;
  public:
   return_type member_2( arguments );
 };
}

Позже (в другом файле, который содержит файл с вышеуказанным блоком), я делаю следующее:

namespace A {
 /* Function prototype */
 B function_name( arguments ); /* error on this line */
}

И я получаю ошибку: 'A' does not name a type

Я даже пытался A::B function_name( arguments );, но, увы, я получил ту же ошибку.

1 Ответ

4 голосов
/ 24 марта 2011

Было бы очень полезно, если бы вы показали нам реальный код, который не работает.

Из предоставленного вами кода и ошибки у меня есть пара догадок:

  • Вы повторно использовали A как класс или переменную.
  • Там есть битый код до namespace A в «позже».
  • Вы передаете параметры, которые не отображаются, и они объявлены с неизвестными типами.
  • «Позже» на самом деле является заголовочным файлом, и эти два файла имеют циклическую зависимость друг от друга.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...