Форум программистов, компьютерный форум CyberForum.ru

Как правильно организовывать проект из нескольких файлов? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Занесение значений в структуру из файла http://www.cyberforum.ru/cpp-beginners/thread1685761.html
Помоги пожалуйста,такая проблема:не могу занести значения в структуру из файла с помощью с++,где ошибка?
C++ Провести преобразования матрицы Провести преобразования матрицы при котором все положительные элементы меняються на сумму соответствующих индексов, а отрицательное на произведение. http://www.cyberforum.ru/cpp-beginners/thread1685758.html
Побитовые операции C++
Помогите, не могу понять как сделать эту программу( unsigned ChangeGroupBits(unsigned x, unsigned y, int n1, int n2); ChangeGroupBits– возвращает х, в котором заданная группа разрядов получается исключающим или соответствующих групп х и у Разряды нумеруются с 0 ChangeGroupBits(0xFFFF,0xFFA5,1,7) = 0xFF5B
Описать функцию IsPowerN(K, N) для проверки является ли параметр K степенью числа N? C++
Описать функцию IsPowerN(K, N) логического типа, возвращающую True, если целый параметр K (> 0) является степенью числа N (> 1), и False в противном случае. Дано число N (> 1) и набор из 10 целых положительных чисел. С помощью функции IsPowerN найти количество степеней числа N в данном наборе.
C++ Перевод задачи паскаля на С++ http://www.cyberforum.ru/cpp-beginners/thread1685748.html
program proc; function IsPowerN(K, N: integer): boolean; begin while K mod N = 0 do begin K := K div N; end; IsPowerN := (k = 1); end;
C++ Описание типов через typedef Возникла проблема с описанием типов в с++. Приведу сразу пример кода: struct t_digit { bool flag; *t_node next; }; typedef digit t_node;Раньше сталкивался с проблемой этой, как-то решил ее. Но не помню уже.. Дело в том, что поле next типа указатель t_node (описано ниже), а сам t_node массив t_digit (описано выше). Вот их переставить местами смысла не будет, как выйти из этой... подробнее

Показать сообщение отдельно
TimeToWork
4 / 4 / 0
Регистрация: 13.04.2013
Сообщений: 25
15.03.2016, 18:10     Как правильно организовывать проект из нескольких файлов?
В данный момент отрыл свой старый проект (и тогда был новичком и сейчас, два года не прогал). Проект крупный, написан ужасно и совсем нечитаем. В связи с этим хочу поделить его на несколько файлов и потом (если это считается хорошим тоном и Вы считаете что поможет с красотой кода) перевести всё на работу с классами.

Давайте на примере. Допустим, программа состоит из нескольких логических частей, разнесём их в отдельные файлы. Пока без классов. Пускай теперь есть файл1.срр, файл2.срр, файл3.срр и т.д. У каждого из них свои ресурсы для внутреннего пользования и функции, которые данный логический блок предоставляет для всеобщего пользования.

1) Какой из описанных далее вариантов следует использовать?

а) К каждому файлу создаём 2 заголовка, допустим к файл1.срр это будут Заголовок_для_себя1.h (в нём прописываются ресурсы для внутреннего пользования в данном файле) и Заголовок_предоставляемого_другим1.h. В начале файл1.срр мы делаем #include обоих хедеров, в других файлах, использующих методы из файл1.срр мы делаем #include только второго хедера. Так делать норм или это будет дурной тон?

б) Заголовок с ресурсами для внутреннего пользования не создаём, а просто всё его содержание прописываем в начале файла файл1.срр. Создаётся только заголовок, который описывает что данный файл предоставляет другим.

2) Допустим файл2.спп и файл3.спп используют из файла1.спп разные наборы функций. Нормально ли грузить общий список предоставляемого файлом1 или лучше для каждого выдернуть из предоставляемого файлом1 набора лишь те конкретные функции, которые будут использоваться?

3.а) Есть море глобальных переменных, пытаюсь от них избавиться или хотя бы значительно уменьшить количество. Стоит ли избавляться полностью (я так понимаю это сильно поможет потом перевести проект к работе с классами) или лучше иметь некий набор глобальных переменных, но зато при вызове функций списки параметров будут значительно меньше? Или глобальные переменные дурной тон в принципе? Думал сделать их локальными в том файле, в котором они больше всего востребованы, прописать методы доступа. Но получается дурная работе описывать специальный класс, у которого будет лишь 1 копия.

3.б) Если глобальные переменные оставлять, то сделать под них отдельный файл в котором они будут описаны и отдельный .h файл в котором они будут описаны со словом extern для предоставления в пользование другими файлами?

4) По поводу классов.
Вот пример - есть некий массив (такая себе база данных), функция её заполнения из заранее подготовленного файла и функция доступа к нужному элементу:
C++
1
2
3
4
5
const int DatabaseSize = 1234567;
float Database[DatabaseSize];
 
void LoadDatabase();
float GetElementFromDatabase(param1, param2, param3);
Стоит ли из этого клеить класс? С одной стороны будет очень логично смотреться, с другой - этого класса я создам ровно 1 представителя. Оки, допустим объединил в класс. К данной базе буду обращаться из многих разных мест программы, значит логично будет либо делать представителя класса глобальным (чтобы не протаскивать указатель как параметр для десятков функций) либо же делать саму базу float Database[DatabaseSize] глобальной и функцию доступа к ней тоже. В таком случае вопрос - зачем такое объединение в класс вообще нужно, оно же получается высосано из пальца? Или всё же надо?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru