Задать вопрос
@Igorello74

Почему обращение к namespace не работает из того же файла, но работает из другого?

Краткое вступление
Добрый день! Так как я не занимаюсь разработкой именно на cpp (пишу под Arduino) долго не знал про такую вещь, как namespace'сы, которая иногда очень помогает, но вот возникла проблема.

В файле (foo.h), в котором объявлен namespace foo, обращение к его члену Bar foo::baz не работает, а выдаёт ошибку:
error: 'baz' in namespace 'foo' does not name a type

В то время, как в другом файле ((main.cpp), который включает foo.h, всё прекрасно работает.
Код
main.cpp
#include "foo.h"
foo::baz.func(); // работает

foo.h
class Bar {
	void func() {;}
}

namespace foo {
	Bar baz;
}
foo::baz.func(); // error: 'baz' in namespace 'foo' does not name a type

ВОПРОС: объясните, пожалуйста, чем вызвана подобная магия и что с этим делать?


UPD: проблема оказалась не в namespace вовсе, а в том, что обращение к члену namespace'а происходило вне функции
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
@Igorello74 Автор вопроса
Ответ дан в комментариях, дублировать не буду
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы