Re: циклические зависимости в коде
От: merk Россия  
Дата: 19.06.10 22:04
Оценка: 1 (1) :)
Здравствуйте, meerius, Вы писали:

M>Поподает ко мне в руки здоровенный проект, который не компилируется из-за циклической зависимости(в таком вот виде и попадает). И что бы найти ее и поправить, у меня уходит много времени. Тут я понимаю, что делать этого хорошо я никак не умею, а хотелось бы выработать некую технику для упрощения работы.

M>Поделитесь опытом.

чтобы этого не возникало нужно
1. писать в хидерах только то, что будет использовано в другом файле(файлах), а не в файле реализующем хидер. то есть хидер — это только обьявление экспортируемых обьектов.
2. инклудить в хидер только то, что используется для дефиниций внутри хидера. и ни в коем случае не инклудить то, что не используется в хидере, а в его реализующем файле.
3. инклудить в хидер напрямую те файлы, что содержат необходимые для его деклараций обьекты, не допуская варианта, типа косвенного инклуда, то есть какого-то "левого" хидера, куда тем или иным образом проинклуденные нужные вам файлы. с такими левыми хидерами вы натаскиваете мусор в свой хидер.
4. если пред пункты не помогли. у вас плохое разбиение на модули и дефиниции в хидерах зависят друг от друга не в силу плохой структуры хидеров и инклудов, а плохого разбиения на модули. тут нужно просто слить друг с другом модули что друг от друга зависят. они явно должны быть обьеденены.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.