![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Всем привет!
Может кто-нибудь мне рассказать о том как лучше в проектах организовывать структуру подключаемых файлов? Вот тут у меня есть наш проект: http://code.google.com/p/smart-flow/source...tFlowLib/Source И чем больше файлов становится тем сложнее получается структура. Заранее спасибо! |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
может тогда стоит немножко рассказать о самом проекте ? что он из себя представляет, какие возможности ожидаются (но только не в деталях, а в общих стуктурных чертах) ![]() |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Это библиотека (и интерфейс) для решения гидродинамических задач.
Вот например там нам нужны следующие классы описывающие сетку: Mesh - сама сетка с узлами, ребрами, элементами. Node - узел (должен тоже видеть Mesh) Edge - ребро (должен видеть элемент, узел, меш) Element - элемент (должен видеть Mesh, Node, Element, Edge и так далее) Короче каждый класс должен быть доступен в другом. + у нас есть boost, и другие библиотеки. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а тогда объясните для чего Вам в библиотеке нужны Console и Progress ? они, имхо, явно не вписываются в Вашу модель .. |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
mes, ну это так. Вспомогательные классы.
Как лучше сделать так что бы все видели всех? |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а должны ли их вобще видеть ?! прежде чем решать что и как сделать, нужно понять что требуется и как должно выглядить. Ну так опишите одним-двумя предложениями какие обязанности возложены в частности на Progress. |
|||
|
||||
mr_kaspersky |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 16.11.2007 Репутация: нет Всего: нет |
a.hpp
a.cpp
b.hpp
Вот так можно классы друг с другом познакомить. |
||||||
|
|||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
mr_kaspersky, а Вы пробовали заглянуть в проект по приведенной выше ссылке ?
там вaми написанное уже применяется ![]() |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
mr_kaspersky, да, это хорошо, когда всего два класса. А если их уже 5 и каждый нужно с каждым связать?
|
|||
|
||||
mr_kaspersky |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 16.11.2007 Репутация: нет Всего: нет |
Да, совсем я обленился по ссылкам ходить!
А что мешает это же использовать для многих классов? Создать отдельный хидер с объявлением всех существующих в проекте классов и инклудить его повсюду. А весь обобщенный код с шаблоннами, где происходит обращение к методам соответствующих классов при их пересечении, в отдельные файлы распихать. Если уж архитектура того требует. |
|||
|
||||
нуп |
|
|||
![]() Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: нет Всего: 33 |
все инклюды запихиваю в один х файл, его и подключаю везде
|
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Когда у тебя проект разрастается до определённых размеров, из-за этого могут возникнуть рекурсивные инклюды, которые, как известно, недопустимы. Например, в одном из хидеров, тебе необходимо подключить другой, потому что, в данном случае, форвард декларейшина недостаточно. Иногда, проще всего нарисовать как это всё взаимосвязано. -------------------- вопросов больше чем ответов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |