![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
MaxS |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Здравствуйте! Имеется 2 файла. Первый использует классы второго, второй - первого. Как и следовало ожидать, при компиляции возникла ошибка: error C1014: too many include files. Как с этим бороться в теории я знаю, но на практике ничего не получилось. Пробовал следующее:
1. #pragma once в начале .h обоих файлов. Но файлы тогда "не видят" друг друга. 2.#ifndef COMDEV_H #define COMDEV_H .... #endif Так же никакого эффекта. Помогите, пожалуйста, заставить их работать совместно. Проблема с этими двумя .h: ComDev.h
Computer.h
|
||||
|
|||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
MaxS, Вот.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
да и во втором можно аналогично сделать... -------------------- |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Не просто можно - А НУЖНО!!! Я подумал, что это очевидно... -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
Для тебя - да, а для товарища - не уверен... -------------------- |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Это не спасет в следующей ситуации:
Если в двух *.h файлах перекрестные инклуды (именно в h, а не в cpp), то ругаться будет. На пример: file 1.h: #ifndef _file1_h_ #define _File1_h_ #include <file2.h> class file1 { file2 *pClassFile2; } #endif file2.h: #ifndef _file2_h_ #define _File2_h_ #include <file1.h> class file2 { file1 *pClassFile1; } #endif Получается, что при обработке первого файла инклудится второй, и когда доходит до строки file1 *pClassFile1 будет ошибка - не определен тип file1. Потому, что первый файл уже начал обрабатываться и для второго его остаток будет невидим. Ситуация не фантастическая - я лично с ней сталкивался, когда синхронизировал между собой разные классы. Я объявлял в хедерах классы опережающе: в файле file1.h class Classfile2; а в файле file2.h class Classfile1; |
|||
|
||||
MaxS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Anikmar, Спасибо! Такой вариант мне помог.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |