powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / про нэймспэсы
6 сообщений из 6, страница 1 из 1
про нэймспэсы
    #33965853
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем, пару вопросов (ламерских вероятно).
есть код в файле х1.h:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
namespace ALLNI
{
	class ALLNIScope;
}

namespace ALLNIScope {

class AcquisitionEventSource : public AbstractEventSource {
	public:
              void test (void);
	private:
	string deviceName;
	::ALLNI::ALLNIScope *scope;

} ;

}

Теперь в x2.h тоже есть класс ALLNIScope, тоже в пространстве имён ALLNI, но полностью набитый свойствами и методами. Так вот когда я в методе void test (void); в реализации класса AcquisitionEventSource (файл x2.cpp) пишу что-то вроде
int z = scope->testfield;
Это на ура работает при условии что в классе который прописан в x2.h есть свойство testfield. В файле x2.cpp нет инклудов x2.h. В x1.h тоже. Кактак получается? И что значит в "::ALLNI::ALLNIScope *scope;" дабл-двоеточее в начале?
...
Рейтинг: 0 / 0
про нэймспэсы
    #33966142
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillВ файле x2.cpp нет инклудов x2.h. В x1.h тоже. Как так получается?может быть включен файл, в котором включен x2.h.

bemtaillдабл-двоеточее в начале?глобальный уровень.
...
Рейтинг: 0 / 0
про нэймспэсы
    #33966468
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя ли построить файл зависимостей для x[21].cpp чтобы посмотреть кто кого обманывает
...
Рейтинг: 0 / 0
про нэймспэсы
    #33967621
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoможет быть включен файл, в котором включен x2.h.

туплю. В файле x1.cpp есть инклуды которые в итоге включают x2.h.

Сейчас приведу цепочку размышлений, поправте если я не прав плз.
Тогда что получается : в фале х1.h компилятор видит только что объявленный класс ALLNIScope и дает объявить ::ALLNI::ALLNIScope *scope внутри класса AcquisitionEventSource без ошибок. В тоже время в реализации AcquisitionEventSource в файле x1.cpp он раходит строчку
int z = scope->testfield;
и согласно включаемым хидерам уже смотрит НЕ на ALLNIScope который объявлен в х1.h, а на ALLNIScope который объявлен в х2.h. А так как там действительно есть свойство testfield (в отличии от ALLNIScope, который объявлен в х1.h,), то также не выдает ошибок.

авторглобальный уровень.
Понял, спсб.
...
Рейтинг: 0 / 0
про нэймспэсы
    #33967750
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillв фале х1.h компилятор видит только что объявленный класс ALLNIScopeэто, вроде, не совсем объявление, это просто метод сказать компилятору, что настоящее объявление класса будет потом. То, что находится в файле х1.h, позволяет объявлять только ссылки на объекты этого класса.
...
Рейтинг: 0 / 0
про нэймспэсы
    #33967836
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo bemtaillв фале х1.h компилятор видит только что объявленный класс ALLNIScopeэто, вроде, не совсем объявление, это просто метод сказать компилятору, что настоящее объявление класса будет потом. То, что находится в файле х1.h, позволяет объявлять только ссылки на объекты этого класса.

Спасибо, все понятно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / про нэймспэсы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]