Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в редакторе кода https://www.cyberforum.ru/ cpp-beginners/ thread2491403.html
В VS Code при такой инициализации массива char filename = "array created"; выдает такую ошибку : "a value of type "const char " cannot be used to initialize an entity of type "char "",при том...
Локальное Соревнование! По защите информации C++
Добрый день уважаемые пользователи форму! В данной теме хочу предложить провести локальное соревнование С целью оценки и прокачки своих навыков, и просто приятным провождением времени) Две...
C++ Перестановки без повторений https://www.cyberforum.ru/ cpp-beginners/ thread2491327.html
привет помогите пожалуйста найти файлик в котором бы были все перестановки из 5 элементов. мне нужно проверить правильно ли я написал программу. буду сверять все перестановки для этого
C++ Импортировать видео с записью езды https://www.cyberforum.ru/ cpp-beginners/ thread2491323.html
Нужна помощь в написании автопилота, сам программист на Python. На гитхабе нашёл 2 репозитория с библиотеками OBL_Slam2 и pilotguru-master. Нужно импортировать видео с записью езды для создания...
C++ Действия в глобальной области
Здравствуйте! Скажите, пожалуйста, почему в глобальной области нельзя работать также, как в локальной (в той же функции main)? Уточняю. 1) Почему нельзя сначала определить глобальную переменную,...
C++ Перегрузка операции + с преобразованием объектов одного класса в объекты другого класса https://www.cyberforum.ru/ cpp-beginners/ thread2491299.html
Доброго времени суток! Изучаю ООП, при выполнении следующего задания возникли сложности: Создать класс Polar для хранения полярных координат (радиус, угол). Перегрузить операцию + для объектов...
C++ Создать имитационную модель "остановка маршрутных такси" Создать имитационную модель "остановка маршрутных такси". Необходимо вводить следующую информацию: среднее время между появлениями пассажиров на остановке в разное время суток, среднее время между... https://www.cyberforum.ru/ cpp-beginners/ thread2491252.html C++ Вывести в виде таблицы значения функции заданной графически
Помогите пожалуйста разобраться с лабой Вычислить и вывести на экран или в файл в виде таблицы значения функции, заданной графически, на интервале от Xнач до Xкон с шагом dx. Интервал и шаг задать...
C++ Определение количества элементов массива, равных заданному https://www.cyberforum.ru/ cpp-beginners/ thread2491231.html
Требуется определить в заданном массиве количество элементов, равных искомому числу. Входные данные В первой строке вводится одно натуральное число N, не превосходящее 10^5: количество чисел в...
C++ Дали задание - змейка https://www.cyberforum.ru/ cpp-beginners/ thread2491153.html
Всем привет. Я новичок в C++, не так давно изучил списки, дали задание - написать змейку. Ну, я написал, не могли бы вы оценить насколько "грязный" и "костыльный" код получился? #include...
Сортировка элементов треугольников в матрице C++
Помогите, пожалуйста, решить задачу. Дана вещественная квадратная матрица. Необходимо отсортировать по возрастанию элементы каждой строки верхнего треугольника, по убыванию – нижнего, оставить без...
C++ Как создать массив и правильно работать с потоками? Хей. Как правильно создать массив со строками "test1", "test2", "test3" ( Гуглил, не смог понять, прошу пример ) Мне нужно проверить есть ли строка из GetClassNameA в массиве строк, как это... https://www.cyberforum.ru/ cpp-beginners/ thread2491144.html
5 / 5 / 1
Регистрация: 15.12.2015
Сообщений: 51
0

Повторное подключение хэдеров - C++ - Ответ 13772783

15.08.2019, 17:48. Показов 1455. Ответов 4
Метки (Все метки)

Здравствуйте!
Тяжело объяснить проблему, но я попробую.
Например, в главном исходном файле я подключаю iostream для ввода/вывода. Далее создаю свой хэдер: пишу определение класса, пишу в нём прототипы перегруженных операторов << и >>, для которых опять же подключаю iostream. В .cpp файле для реализации этих операторов я просто подключаю свой хэдер, в который уже включен iostream. Но как быть с главным исходником, где уже подключен iostream? Ведь если я подключу свой хэдер, то получится, что я дважды подключаю iostream.

Выглядит всё как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//main.cpp
#include <iostream>
using namespace std;
#include "myheader.h"
 
int main();
{
     INTEGER i;
     cin >> i;
     cout << i << endl << "Goodbye world!" << endl;
 
     return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
//myheader.h
#include <iostream>
 
class INTEGER
{
     private:
          int value;
 
     public:
          friend istream& operator >> (istream& s, INTEGER& v);
          friend ostream& operator << (ostream& s, INTEGER& v);
}
C++
1
2
3
4
5
6
7
8
9
10
11
//myheader.cpp
#include "myheader.h"
INTEGER::istream& operator >> (istream& s, INTEGER& v)
{
     s >> v.value;
}
 
INTEGER::ostream& operator << (ostream& s, INTEGER& v)
{
    s << v.value;
}
Такая же ситуация может возникнуть и с другими подключаемыми заголовочными файлами. Поэтому вопрос: как правильно подключать хэдеры, чтобы они не дублировались нигде?
Ошибок нет, но всё должно быть красиво и структурировано.

Вернуться к обсуждению:
Повторное подключение хэдеров C++
0

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

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2019, 17:48
Готовые ответы и решения:

Повторное подключение. Почему не ограничено автоматически?
Есть разные способы ограничить повторное подключение заголовочных файлов, библиотек. Но неужели...

Подключение двух хэдеров
Необходимо подключить два хэдера, в которых пересекается содержимое и получаем conflicting...

Подключение хэдеров
У меня стоит qt 5.2 minGW на win7 x64. Книжка есть по 4.8, да и другие материалы вижу по 4 версии в...

повторное подключение
у меня две формы.на первой регистрация ползователя.все пользователи забиты в БД.при нажатии на...

4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2019, 17:48

Повторное socket подключение
Я открыл страницу один раз. Через пару минут в консоли было несколько логов о коннекте, хотя...

IP камера, повторное подключение
Добрый день, подскажите как лучше сделать, в общем есть камера и она может пропадать, что нужно...

Повторное подключение через WCF
Написал программу, в которой файлы передаются по сети. Создаю подключение к серверу через WCF,...

Повторное подключение к БД (connection string)
Подскажите плиз, как сделать, чтобы при неоткрывшемся соединении (connection not opened) программа...

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