Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
1

Как подключить .h файл дважды?

31.01.2010, 11:50. Показов 1682. Ответов 8
Метки нет (Все метки)

Такая проблема:

имеется файл lib.h

и еще 2 файла: NewLib1.h и NewLib2.h, в каждый из которых включен предыдущий файл:
C++
1
#include "lib.h"
Проблема возникает, когда я компилирую файл program.cpp
#include "NewLib1.h"
#include "NewLib2.h"

Возникает конфликт. Как сделать так, чтобы такого конфликта не было, НЕ меняя содержимого файлов библиотек?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2010, 11:50
Ответы с готовыми решениями:

как подключить файл *.HTML
Бросил на новую форму компонент cppwebbrowser, но не знаю как подключить к нему файл справки...

Как подключить внешний файл с функцуей
Всем, привет! Вопрос 1 класса, но помогите разобраться пожалуйста. Я написал функцию вырезания...

Как подключить lib файл к проекту в C++ Builder
Здрасвтвуйте, помогите плиз, нужно добавить lib файл к проекту в C++ Builder. Я скачал библиотеку...

Я не могу разобраться как мне правильно подключить исполняемый файл .срр
Доброго всем времени суток. Начал изучать Visual С++. Конечно интерестный язык, но довольно таки...

8
Эксперт С++
2921 / 1270 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
31.01.2010, 13:16 2
Решение простое - guard'ы. В файле lib.h должно быть что-то типа
C++
1
2
3
4
5
6
#ifndef __LIB_H__
#define __LIB_H__
 
// тут смысловое содержание заголовка....
 
#endif  // __LIB_H__
1
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
31.01.2010, 19:12 3
В файле lib.h должно быть что-то типа
Во всех файлах *.h должно быть что-то такое.
1
Эксперт С++
5819 / 3471 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
09.02.2010, 09:43 4
Можно попробовать:
C++
1
#pragma once
0
Автор FAQ
3684 / 961 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
09.02.2010, 16:38 5
кстати интересно вообще почему такое поведение не рассматривается как поведение по умолчанию, неужели можно включить файл дважды для какой то пользы?
0
Эксперт С++
5819 / 3471 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
09.02.2010, 16:46 6
Это все делается для развития наших способностей)))
0
503 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
09.02.2010, 19:19 7
Цитата Сообщение от insideone Посмотреть сообщение
кстати интересно вообще почему такое поведение не рассматривается как поведение по умолчанию, неужели можно включить файл дважды для какой то пользы?
Препроцессор не обязан знать, что может прогеру взбрести в голову. Чем проще код - тем меньше ошибок. Для реализации этого, требуется код.#pragma once - не везде работает. Поэтому её лучше не использовать.
1
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
10.02.2010, 07:58 8
кстати интересно вообще почему такое поведение не рассматривается как поведение по умолчанию, неужели можно включить файл дважды для какой то пользы?
Разумеется можно.
Например я писал модуль для быстрой сортировки простых типов.
В коде стоит #include одного и того же файла 16 раз
Правда там разные #define перед этим, что дает 16 разных вариантов сортировки - int, long, по возрастанию и по убыванию, ...
1
Автор FAQ
3684 / 961 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
10.02.2010, 18:18 9
2 odip Шаманство Спасибо за конкретизированный пример
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2010, 18:18

Помощь в написании контрольных, курсовых и дипломных работ здесь.

как подключить файл?
начал работу с файлами на языке Си, но не могу понять, как подключить файл, чтобы программа...

Как подключить заголовочный файл?
есть заголовочный файл в папке api пример api/file.h, как его подключить в visual studio 2013?:)

как подключить аудио файл на с++?
покажите на примере как это делается заранее спс

Почему в файл значение дублируется (записывается дважды)?
Суть: при чтении с файла f записываю данные(числа) в массив a. Потом значения этого массива по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.