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

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

Войти
Регистрация
Восстановить пароль
 
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
#1

Правильно ли для отделения каких то данных расположить в отдельном .cpp файле с заголовком .h - C++

07.05.2014, 18:40. Просмотров 237. Ответов 8
Метки нет (Все метки)

Здравствуйте, хотел спросить совет... Правильно ли для отделения каких то данных(скорее всего статичных) Расположить в отдельном .cpp файле с заголовком .h? То есть допустим есть у меня файл main.cpp
С содержанием(псевдокод):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
include <blabla>
 
bool init();
bool load();
void events();
void loop();
void render();
void exit();
 
int main(int argc, char **argv)
{
    init();
    load();
    while(run)
    {
        while(get_events)
        {
            events();
        }
        loop();
        render();
    }
    exit();
    
    return 0;
}
 
///////реализация функций
Так вот, правильно ли, чтобы не захламлять файл main.cpp создать отдельно file.h и file.cpp для хранения, например дескриптора окна или контекст рендеринга opengl и т.д.? Разумеется, если данных много. Правильно ли это с точки зрения архитектуры? А то я сильно этим заморочился почему то...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2014, 18:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Правильно ли для отделения каких то данных расположить в отдельном .cpp файле с заголовком .h (C++):

Описание функции шаблонного класса библиотеки в отдельном cpp-файле - C++
Есть библиотека. В файле ARRAYLIST.HPP описан шаблон template &lt;typename _Type&gt; class ArrayList { private: int length; ...

Как правильно записать функцию в отдельном файле? - C++
Здравия желаю. Помогите, пожалуйста, разобраться, как записать собственную функцию в отдельном файле? Делаю так, не получается: ...

С помощью командной строки >namberstr f1.cpp Определить число строк в файле с именем f1.cpp - C++
С помощью командной строки &gt;namberstr f1.cpp Определить число строк в файле с именем f1.cpp

Как правильно компилировать .ехе файл, чтобы ресурсы были в отдельном файле? - Visual Basic .NET
Visual Basic 2010 Как правильно компилировать .ехе файл, чтобы ресурсы были в отдельном файле, и он не превышал порядка 2-5 мб.? При...

Сохранение конкретных данных в отдельном файле (C#) - C#
Здравствуйте, я изучаю C# совсем недавно, поэтому может мой вопрос покажется элементарным, но я по крайней мере так и не смогла найти...

Сохранить текущую базу данных в отдельном файле - MS Access
Всем привет! Суть проблемы: на форме есть кнопка по нажатии которой нужно, чтобы текущая база данных сохранилась в другом файле, при этом...

8
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,125
07.05.2014, 18:48 #2
Меня пугает слово "данные".
У Вас куча глобальных переменных?
0
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
07.05.2014, 19:32  [ТС] #3
У меня есть дескриптор окна, контекст рендеринга и размеры окна, все...
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,125
07.05.2014, 19:35 #4
В любом случае, использования глобальных переменных следует избегать.
0
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
07.05.2014, 19:49  [ТС] #5
Ну это ясно, в любом учебнике написано)) Но ведь вот например, есть объект(3d модель) она должна быть видна и в функции loop и render, моделей может быть пару сотен + разных типов, не передавать же их в функцию, как параметр.
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,125
07.05.2014, 19:53 #6
Цитата Сообщение от scrat2013 Посмотреть сообщение
не передавать же их в функцию, как параметр.
Почему нет?
Если у них есть общий интерфейс - они отлично упаковываются в контейнер.
Если общего интерфейса нет и сделать нельзя - можно с чуть меньшей легкостью сделать из них одну структуру.
Если есть множество функций, которые выполняют операции над одним и тем же ресурсом - это повод задуматься о написании класса, где этот ресурс будет закрытым полем.
В общем, все средства в языке есть.
0
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
07.05.2014, 19:58  [ТС] #7
Хорошо, спасибо, мне просто нужно как можно больше советов. Можно спросить А вы разбираетесь в opengl?
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,125
07.05.2014, 20:00 #8
Цитата Сообщение от scrat2013 Посмотреть сообщение
А вы разбираетесь в opengl?
Не приходилось использовать. То, что выше - написал исходя из общей логики.
0
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33
07.05.2014, 20:04  [ТС] #9
Огромное спасибо, за ответы.=)
0
07.05.2014, 20:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 20:04
Привет! Вот еще темы с ответами:

Как вызвать в основном .cpp файле тот или иной .cpp файл - C (СИ)
Ну, обычно я работал с одним .cpp но вот появилась надобность в основном файле написать интерфейс простенький и выбор одного из 2х...

Обезопасить сайт. авторизация с базой данных в отдельном файле - PHP
Я профан в этом деле. Никак не пойму. Допустим у меня сайте (mysite.ru) есть страничка на на ней я подключаюсь к базе так : &lt;? ...

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

для каких целей лучше выбрать двухядерник, а для каких 4ядерник? - Процессоры
для каких целей лучше выбрать двухядерник, а для каких 4ядерник?


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

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

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