Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как лучше организовать структуру подключ. файлов? 
:(
    Опции темы
Elfet
Дата 5.2.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Всем привет!

Может кто-нибудь мне рассказать о том как лучше в проектах организовывать структуру подключаемых файлов?

Вот тут у меня есть наш проект: http://code.google.com/p/smart-flow/source...tFlowLib/Source

И чем больше файлов становится тем сложнее получается структура.

Заранее спасибо!


--------------------
PM MAIL WWW Skype   Вверх
mes
Дата 5.2.2010, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Elfet @  5.2.2010,  12:44 Найти цитируемый пост)
Может кто-нибудь мне рассказать о том как лучше в проектах организовывать структуру подключаемых файлов?

может тогда стоит немножко рассказать о самом проекте ? 
что он  из себя представляет, какие возможности ожидаются (но только не в деталях, а в общих стуктурных чертах)
smile


--------------------
PM MAIL WWW   Вверх
Elfet
Дата 5.2.2010, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Это библиотека (и интерфейс) для решения гидродинамических задач. 

Вот например там нам нужны следующие классы описывающие  сетку:

Mesh - сама сетка с узлами, ребрами, элементами.
Node - узел (должен тоже видеть Mesh)
Edge - ребро (должен видеть элемент, узел, меш)
Element - элемент (должен видеть Mesh, Node, Element, Edge и так далее)

Короче каждый класс должен быть доступен в другом.

+ у нас есть boost, и другие библиотеки.


--------------------
PM MAIL WWW Skype   Вверх
mes
Дата 5.2.2010, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Elfet @  5.2.2010,  13:10 Найти цитируемый пост)
Вот например там нам нужны следующие классы описывающие  сетку:

а тогда объясните для чего Вам в библиотеке нужны Console и Progress  ? они, имхо, явно не вписываются в Вашу модель ..





--------------------
PM MAIL WWW   Вверх
Elfet
Дата 5.2.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



mes, ну это так. Вспомогательные классы. 

Как лучше сделать так что бы все видели всех? 


--------------------
PM MAIL WWW Skype   Вверх
mes
Дата 5.2.2010, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Elfet @  5.2.2010,  16:19 Найти цитируемый пост)

Как лучше сделать так что бы все видели всех? 

а должны ли их вобще видеть ?!
прежде чем решать что и как сделать, нужно понять что требуется и как должно выглядить.

Цитата(Elfet @  5.2.2010,  16:19 Найти цитируемый пост)
Вспомогательные классы. 

Ну так опишите одним-двумя предложениями какие обязанности возложены в частности на Progress.





--------------------
PM MAIL WWW   Вверх
mr_kaspersky
Дата 6.2.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.11.2007

Репутация: нет
Всего: нет



a.hpp
Код


class B;

class A 
{
  B m_b;
};


a.cpp
Код

#include "a.hpp"
#include "b.hpp"

// работа с интерфейсом класса B


b.hpp
Код

#include <a.hpp>
 
class B
{
  A m_a;
};


Вот так можно классы друг с другом познакомить.
PM MAIL   Вверх
mes
Дата 6.2.2010, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



mr_kaspersky, а Вы пробовали заглянуть в проект по приведенной выше ссылке ?
там вaми написанное уже применяется smile


--------------------
PM MAIL WWW   Вверх
Elfet
Дата 6.2.2010, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



mr_kaspersky, да, это хорошо, когда всего два класса. А если их уже 5 и каждый нужно с каждым связать?


--------------------
PM MAIL WWW Skype   Вверх
mr_kaspersky
Дата 6.2.2010, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.11.2007

Репутация: нет
Всего: нет



Да, совсем я обленился по ссылкам ходить!

А что мешает это же использовать для многих классов?  Создать отдельный хидер с объявлением всех существующих в проекте классов и инклудить его повсюду.  А весь обобщенный код с шаблоннами, где происходит обращение к методам соответствующих классов при их пересечении, в отдельные файлы распихать. Если уж архитектура того требует. 
PM MAIL   Вверх
нуп
Дата 6.2.2010, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



все инклюды запихиваю в один х файл, его и подключаю везде
PM MAIL   Вверх
Леопольд
Дата 7.2.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(нуп @  6.2.2010,  20:42 Найти цитируемый пост)
все инклюды запихиваю в один х файл, его и подключаю везде 

Когда у тебя проект разрастается до определённых размеров, из-за этого могут возникнуть рекурсивные инклюды, которые, как известно, недопустимы. Например, в одном из хидеров, тебе необходимо подключить другой, потому что, в данном случае, форвард декларейшина недостаточно.

Иногда, проще всего нарисовать как это всё взаимосвязано.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1255 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.