Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Невозможно определить переменную абстрактным типом Добрый день! Имеется следующий код: #include <iostream> #include <vector> using namespace std; namespace some { class One https://www.cyberforum.ru/ cpp-beginners/ thread2490768.html Функция перевода секунд в соответствующее количество часов, минут, секунд C++
Написать программу, в которой пользователь задаѐт количество секунд. Это значение передаѐтся в процедуру, которая переводит секунды в соответствующее количество часов, минут, секунд и выводит...
C++ Первый четный элемент двумерного массива Почему не выводится первый четный элемент в массиве? как то в хаотичном порядке каждый раз выдает четное число int main() { setlocale(LC_ALL, "rus"); int arr; int chet; cout << "Ввод... https://www.cyberforum.ru/ cpp-beginners/ thread2490752.html C++ Сумма чисел от x до Y В квадрате https://www.cyberforum.ru/ cpp-beginners/ thread2490751.html
Программа для расчёта суммы чисел от x до y в квадрате #include "pch.h" #include <iostream> #include <cstdlib> using namespace std; int main() { //Изменение кодировки консоли system("chcp...
Сравнить первую и последнюю цифры числа C++
Привет. Как сделать программу в которую ты вводишь число,а она сравнивает равны ли первая и последняя цифры числа. Заранее спасибо
C++ Добавьте к каждому введенному числу типа doube единицу измерения Добавьте к каждому введенному числу типа douЫe единицу измерения Допустимыми являются четыре единицы измерения: cm, m, in, ft. Примите следующие коэффициенты преобразования: lm = lOOcm, 1in =... https://www.cyberforum.ru/ cpp-beginners/ thread2490670.html
C++ Предложить тесты, на которых программа даст сбой Доброго вам времени суток, уважаемые форумчане. Недавно я наткнулся на - с виду - несложную задачку. Вот условие: Уравнение (Время: 1 сек. Память: 16 Мб Сложность: 17%) Вася в школе изучил... https://www.cyberforum.ru/ cpp-beginners/ thread2490630.html C++ Вычисление значения функции exp(x) заданной разложением в ряд Тейлора
Помогите, пожалуйста, написать программу. Вычислить выражение ex=1+x+x2/2!+x3/3!+ λ +xn/n!+ λ c точностью ε (значения x и ε вводятся с клавиатуры).
C++ В чём отличие между ++i и i++? В чём отличие между ++i и i++? 1)Между операциями нет разницы 2)Первая операция увеличивает i, а вторая — уменьшает https://www.cyberforum.ru/ cpp-beginners/ thread2490426.html C++ Какой из циклов, написанных ниже, выведет на экран все числа, которые только есть в массиве? https://www.cyberforum.ru/ cpp-beginners/ thread2490423.html
int data = { 7, 5, 5, 7, 6, 4, 3 }; Какой из циклов, написанных ниже, выведет на экран все числа, которые только есть в массиве? for (int i ; i < 7; ++i) cout << data << " "; for...
C++ Нужно определить сколько нулей в массиве
short int d = { 3, 5, 9 }; А вот в таком? int arr = { 6, 0, 3, 5, 6 };
C++ Найти значения переменных после выполнения заданного кода https://www.cyberforum.ru/ cpp-beginners/ thread2490419.html
Дан следующий код: int a, b, c; a = b = 2; c = 1; a -= (++b - c); b += a++; a -= --c; b += b + c; Написать значения всех переменных после выполнения этого кода.
4 / 4 / 3
Регистрация: 04.10.2009
Сообщений: 202
0

Правильная работа с заголовочными файлами - C++ - Ответ 13769033

13.08.2019, 18:25. Показов 330. Ответов 2
Метки (Все метки)

Добрый день! Данная тема неоднократно подымалась на форуме, но конкретно для моей ситуации ответ увы найти не удалось.
Суть проблемы, есть у нас два файла A.h и B.h
A.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
#ifndef A_H
#define A_H
include "B.h"
class A
{
public:
B b;
};
#endif
B.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
#ifndef B_H
#define B_H
include "A.h"
class B
{
public:
A a;
};
#endif
В результате компиляции мы получим примерно следующую ошибку "build errors due to circular dependency amongst classes" или компилятор просто не обнаружит тип "А". Причина её возникновения мне понятна, но хотелось бы понять как правильно данная проблема решается ? Или здесь больше проблема в самой структуре написанного кода и на практике мы должны исключать подобную ситуацию т.к. в двух классах не должно быть взаимного включения объектов друг друга ? Знаю пару решений для данной проблемы к примеру добавив в файл A.h объявления класса B тем самым избавившись от не нужного заголовка.
C++ (Qt)
1
class B;
Но подобное решение вовсе не красит код и хотелось бы узнать как правильно выходить из подобной ситуации.
Буду весьма признателен за помощь!

Вернуться к обсуждению:
Правильная работа с заголовочными файлами C++
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2019, 18:25
Готовые ответы и решения:

Работа с заголовочными файлами
Приветствую! Простейшая программа с подключением заголовочного файла выдаёт следующие ошибки: ...

Ошибка с заголовочными файлами
error C1014: слишком много включаемых файлов: глубина = 1024

Непонятка с заголовочными файлами
game.h #ifndef _GAME_H_ #define _GAME_H_ #include &lt;gl\gl.h&gt; #include &lt;gl\glu.h&gt; ...

В чем разница между заголовочными файлами и библиотеками
В чем разница между заголовочными файлами и библиотеками? И, вообще, какова структура библиотеки в...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2019, 18:25

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

Создание статической библиотеки из нескольких файлов с несколькими заголовочными файлами
В общем, имеется несколько классов, как водится - каждый имеет .h/.cpp. Решил собрать все это дело...

Как пользоваться заголовочными файлами и использовать несколько исходных файлов?
Как пользоваться несколькими файлами cpp, и заголовками h , в Visual Studio WIN32 C++ Дайте...

Правильная работа с файлами
Я написал небольшой скрипт, который разбирает текстовый файл со строками (разделенными табуляциями)...

Правильная работа с БД
У меня есть небольшое приложение в котором реализованы функции выборки данных из БД (select ...),...

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