Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 September 19

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Gerda
Может подскажете лучший вариант, такая ситуация, есть коллекция файлов (A.cpp,B.cpp, A.h, B.h), данные из А используются в B и в то же время данные из B используются в А, как мне связать эти 2 файла?
с набором файлов можно играться при сборке в терминале

но лучше всего — использовать любую систему автоматизации сборки (cmake, qmake, etc)
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Vsevolod
с набором файлов можно играться при сборке в терминале

но лучше всего — использовать любую систему автоматизации сборки (cmake, qmake, etc)
ух cmake...
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
мне кажется, у меня слегка нарушена логика
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Gerda
ух cmake...
всяко лучше, чем ипать компилятор лично)
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Gerda
мне кажется, у меня слегка нарушена логика
а, я не до конца понял вопрос (у меня ещё вечер)
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Vsevolod
всяко лучше, чем ипать компилятор лично)
я могу спросить более развернуто(дать код из исходников, там 4 файла)? Буду очень благодарен, если поможете
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Gerda
мне кажется, у меня слегка нарушена логика
в общем, можешь A* a сделать в хедере B, и наоборот
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Vsevolod
в общем, можешь A* a сделать в хедере B, и наоборот
а это нормальная практика?
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
class A; в начале B.h
инклюд A.h в B.cpp
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Gerda
а это нормальная практика?
ну, скажем, лучше этого всё же избегать
но бывают разные ситуации
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Cube
https://pastebin.com/MKJ96s3p
https://pastebin.com/6sj4MLiq

Matrix
https://pastebin.com/cm0pGZPL
https://pastebin.com/kaw5chTC

Нужно, чтобы в Cube дефайнилось Matrix.h и наоборот
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Gerda
Cube
https://pastebin.com/MKJ96s3p
https://pastebin.com/6sj4MLiq

Matrix
https://pastebin.com/cm0pGZPL
https://pastebin.com/kaw5chTC

Нужно, чтобы в Cube дефайнилось Matrix.h и наоборот
ох тебе сделают код ревью местные обыватели)
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Бага состоит в том, что в Matrix.h он не видит инклюды
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Vsevolod
ох тебе сделают код ревью местные обыватели)
начнут с того, что в методы isSolved не передаю константные параметры...
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
попробуй сделать то, что я предложил
главное — в хедере A только указатель B и БЕЗ хедера B
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
и наоборот
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
рабочая схема)
может, есть и лучше, но методом проб понравился этот варик
источник

G

Gerda in IT KPI C/C++ ХВ (не UB)
Vsevolod
попробуй сделать то, что я предложил
главное — в хедере A только указатель B и БЕЗ хедера B
указатель B?
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
это если нужно использовать именно объект класса B в A, а A в B в хедерах

A.h
class B;
...
B* b;

B.h
class A;
...
A* a;

A.cpp
include "B.h"
...
B = new B;
или через setB(B* b)
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
если просто функции, то там проще
источник