2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
1 | |
Разбиение проекта на файлы05.09.2010, 22:13. Показов 3254. Ответов 15
Метки нет (Все метки)
Добрый вечер. Пишу проект на винапи, в нем есть несколько классов с обьявлением и определением. Хотелось бы вынести код каждого класса в отдельный файл для удобства чтения. Подскажите, как это правильно сделать. Если что - пишу на Dev-Cpp.
0
|
05.09.2010, 22:13 | |
Ответы с готовыми решениями:
15
Разбиение проекта на подпрограммы Как присоединить к h файлу проекта и к cpp проекта файлы из папки, лежащей с ними на одном уровне Разбиение проекта на файлы С++ Разбиение проекта на файлы |
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
06.09.2010, 19:52 [ТС] | 3 |
Попробовал, выношу в *.h файл обьявление класса, сохраняя определение в main.cpp - работает. Если пробую вынести определение в отдельный *.сpp, вылезают ошибки - не видны глобальные переменные, уже обьявленные типы указываются несуществующими. Посмотрел в FAQ про инклюды - так и не понял в чем загвоздка. Может есть какие-то тонкости?
0
|
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
06.09.2010, 21:46 [ТС] | 5 |
Выкладываю
0
|
07.09.2010, 13:19 | 6 |
Почему #include закоментированны ?
В каждом своём хедере в начале файла добавь #pragma once Добавлено через 40 секунд 2. В хедерах очень нежелательно использовать using namespace директивы. Добавлено через 1 минуту 3. В файле инклудяться только те библиотеки, к-рые используются. 4. Глобальные переменные нужно оглашать там, где они используются.
0
|
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
07.09.2010, 20:42 [ТС] | 7 |
Попробовал с вашими указаниями, все равно не работает, как задумано.
Вот рабочий вариант, но в нем определение класса FUEL - лежит в main.cpp c 50 по 205 строку. Если можно, для примера - перенесите определение FUEL в fuel.cpp, а с остальным я разберусь.
0
|
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
07.09.2010, 23:24 [ТС] | 9 |
При перемещении определения класса FUEL в fuel.cpp - выдаются сообщения ошибок, дескать класс FUEL не обьявлен, глобальные переменные, использованные в функциях - тоже выдаются как необьявленные, типы данных RECT и POINT - тоже необьявлены.
Рабочий вариант выложен выше, но там только обьявление класса вынесено в fuel.h, а определение оставлено в main.cpp. Мне же надо добиться, чтобы определение класса лежало в fuel.cpp..пока не удается.
0
|
07.09.2010, 23:43 | 10 |
Delaar, давай так.
Ты скинешь сюда код как он должен выглядеть на твой взгляд, а я его скомпилю и скажу, где у тебя ошибки. Переделывать за тебя я не хочу по простой причине - тебе будет легче, если ты делаешь сам, а тебе помогают в мелочах. Среди сообщений о ошибках часто имееют значение только первая, на словах мне сложно сказать, что надо исправить. Так что кидай некомпилируемый код сюда и мы его поправим
0
|
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
07.09.2010, 23:57 [ТС] | 11 |
Хотелось бы вот так:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
07.09.2010, 23:59 | 12 |
нет желания смотреть никакого, тем более обсуждалось 100500 раз
Delaar, выкладывай прямо на форум, если там очень много, то может быть какой-нибудь класс попроще взять и на его примере посмотреть?
0
|
08.09.2010, 00:47 | 13 |
В fuel.cpp заинклудь fuel.h
Иначе в fuel.cpp об этом классе ничего не известно. Добавлено через 3 минуты fabs -> abs. Либо делай явные приведения типов аргуменов при вызове этой ф-ции. Добавлено через 6 минут Когда появляется ошибка при компиляции файла, что класс такой-то или функция неопределена - значит одно из трёх: 1. Ты забыл включить хедер, где эта функция/класс определён. 2. Ты ошибся в названии класса/функции. 3. Ты забыл такую класс/функцию обьявить. Второе - почитай того же Страуструпа или книгу по программингу или посмотри примеры - глянь какой стиль у названия функций и классов. ВСЕМИ_ЗАГЛАВНЫМИ_БУКВАМИ называются или структуры (что на мой взгляд нежелательно), либо макроопределения (обьявленные через #define), либо глобальніые константы (const double PI =3,1415). Будут ещё проблемы, по к-рым нужна помощь - пиши.
0
|
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
08.09.2010, 00:50 [ТС] | 14 |
fabs и abs это пока что мелочи жизни
в fuel.cpp уже пробовал инклюдить fuel.h, попробовал еще раз, ошибки остаются прежние. Если кроме указанного ничего добавлять не надо, то может быть дело в компиляторе?
0
|
2 / 2 / 0
Регистрация: 23.11.2009
Сообщений: 15
|
|
08.09.2010, 01:29 [ТС] | 16 |
Поступил радикально
и обьявление, и определение теперь лежат в fuel.h, для меня это приемлимо, и главное - это работает Andrew_Lvov - огромное вам спасибо, редко встречаются на форумах люди, детально разьясняющие молодым и зеленым даже такие, в сущности простые проблемы Тему можно закрывать.
0
|
08.09.2010, 01:29 | |
08.09.2010, 01:29 | |
Помогаю со студенческими работами здесь
16
Разбиение проекта на файлы Разбиение проекта на файлы Разбиение проекта CodeBlocks на файлы Разбиение проекта на .h Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |