Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gundos111
1 / 1 / 0
Регистрация: 24.07.2012
Сообщений: 8
#1

Как правильно организовать большой проект? - C++

24.07.2012, 09:48. Просмотров 1272. Ответов 5
Метки нет (Все метки)

В будущем хочу участвовать в разработке игр - начал изучать С++, вопрос тут такой, как правильно организовать структуру достаточно большого проекта? в учебниках, с примерами в 1-2 файла все просто, но когда их становиться больше - я начинаю путатся.

Например, пробую сделать примитивную 3Д модельку солнечной системы.
есть некий базовый класс 3Д объекта, ответственный за перемещение и отрисовку 3Д-модели.
есть несколько более конкретных классов - планеты, астероиды, и т. д (планируется сделать достаточно много объектов с разным поведением). все они используют базовый класс 3Д объекта.
Далее есть сам класс звездной системы, который, в свою очередь, использует классы планет и астероидов.

Каждый класс я описываю в отдельном файле:
Заголовок и реализация 3Д модели:
Object3D.h
Object3D.cpp
Астероид:
Asteroid.h - тут делаю #include Object3D.h
Asteroid.cpp - тут делаю #include Asteroid.h
Планта:
Planet.h - тут делаю #include Object3D.h
Planet.cpp - тут делаю #include Planet.h
Ну и система:
Plsystem.h - тут делаю #include Asteroid.h
#include Planet.h
Plsystem.cpp - тут делаю #include Plsystem.h

т.е. вроде бы получается, что по цепочке инклудов в файл Plsystem.cpp несколько раз линкуется Object3D.h, имеет ли это значение, или компилятор сам лишнее уберет?
И где можно почитать про правильную организацию достаточно сложных проектов?
Работаю в MSVS 2010
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2012, 09:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как правильно организовать большой проект? (C++):

Как правильно организовать многофайловый проект? - C++
Добрый вечер дорогой форум. Сразу скажу я новичек. Пишу курсовик, сроки, как всегда поджимают (семья, ремонт и две работы)... Но это...

Как правильно организовать дерево ? - C++
Есть класс дерева (упрощенный вариант) class Tree { public: Tree * parent; int data; vector<Tree> childs; }

Как правильно организовать ветвление в программе? (if / else if) - C++
Доброгл времени суток. Есть вопрос - почему если я ввожу нужный мне параметр мне всплывает на экран "Введите значение средств в гривнях...

Как правильно организовать удаление объекта по указателю? - C++
Конечно тема избитая, и я находил много решений, но проверить удаляються ли объекты не могу. Есть массив указателей на объекты Record...

Как правильно организовать код большого проекта на C++? - C++
Все мы рано или поздно переходим тот рубеж, когда писать хелловорлды становится скучно и хочется создавать что-нибудь большое и крутое. Но...

Как правильно организовать файловый ввод/вывод? - C++
setlocale(LC_ALL,"russian"); double x; ifstream fin; fin.open("input.txt"); fin>>tochnost>>x>>x>>x; ...

5
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.07.2012, 10:48 #2
Цитата Сообщение от gundos111 Посмотреть сообщение
т.е. вроде бы получается, что по цепочке инклудов в файл Plsystem.cpp несколько раз линкуется Object3D.h, имеет ли это значение, или компилятор сам лишнее уберет?
для этого в хедер-файлах ставят стражи включения
C++
1
2
3
4
5
6
7
#ifndef FILENAME__HPP
#define FILENAME__HPP
 
class Object3D {
//...
 
#endif //FILENAME__HPP
по макросу FILENAME__HPP препроцессор определит включался ли этот хедер-файл или нет
0
DiffEreD
24.07.2012, 18:31
  #3

Не по теме:

А что лучше использовать - #pragma once или #ifndef #define?

0
Endiff
31 / 31 / 1
Регистрация: 19.05.2012
Сообщений: 67
24.07.2012, 18:34 #4
Цитата Сообщение от yuron_477 Посмотреть сообщение
А что лучше использовать - #pragma once или #ifndef #define?
#pragma может не поддерживаться некоторыми компиляторами и системами. А второй вариант универсален.
0
alsav22
5435 / 4830 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.07.2012, 04:40 #5
Цитата Сообщение от gundos111 Посмотреть сообщение
Работаю в MSVS 2010
Компилировать проект пробовали?
0
gundos111
1 / 1 / 0
Регистрация: 24.07.2012
Сообщений: 8
29.07.2012, 09:55  [ТС] #6
Спасибо за ответы, сделал проверки через
#ifndef
#define
#endif
Цитата Сообщение от alsav22 Посмотреть сообщение
Компилировать проект пробовали?
Да, проект и компилится и запускается, куда ж он денется.
Хотел узнать именно как избежать "избыточных" инклудов, или просто не обращать на них внимания, поскольку пока слабо представляю процес сборки ехешника.
0
29.07.2012, 09:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2012, 09:55
Привет! Вот еще темы с ответами:

Как правильно организовать заголовочный файл со своими функциями? - C++
Есть файл в котором я храню функции, которые часто использую(среди них есть и шаблонные). Например: //Utils.h template <typename...

Как правильно организовать дописывание данных в звуковой файл - C++
У меня есть TCP сервер написанный на Qt. Сервер у меня создается как отдельный класс Server в QtCreator. Соединение с клиентом происходит...

Как правильно компилировать проект си в С++ Builder 6 - C++
Как правильно компилировать проект си в С++ Builder 6 так, что бы весь проект вместе в библиотеками сохранялся в один exe файл и я его мог...

Объясните как правильно создавать проект - C++
Писать толком не умею. Было все в одном файле, надо "разбить". Когда все было в одном - работало. Объясните, пожалуйста как разбить. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru