Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Goose45
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 80
1

Как правильно структурировать файлы проекта?

25.08.2018, 18:30. Просмотров 821. Ответов 3

Здравствуйте, у меня есть один вопрос, как правильно структурировать файлы проекта, например я видел в некоторых проектах, примерно следующие...

/Project_name/misc/build.sh
/Project_name/src/main.cpp
/Project_name/src/Class_name/Class.cpp
/Project_name/src/Class_name/Class.hpp

Если это правильно, то тогда как оформить то что лежит в папке класс.

Class.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include "Class.hpp"
 
MPU::MPU(){
    addrDevDec = wiringPiI2CSetup(ADDR_DEVICE);
}
 
int MPU::getAddrDevDec(){
    return addrDevDec;
}
 
//.....
Class.hpp
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
#pragma once
#ifndef IN_MPU
#define IN_MPU
 
#include <wiringPiI2C.h>
#include <wiringPi.h>
 
#define ADDR_DEVICE 0x68 //I2C_ADDR
 
class MPU{
    private:
        int addrDevDec;
 
        struct raw_data{
            float raw_w;
            float raw_x;
            float raw_y;
            float raw_z;
        }axis;      
 
    public:
        MPU();
        
        int getAddrDevDec();
        float getRawW();
        float getRawX();
 
//....
И вообще, правильно ли, выносить определение методов из класса в отдельный файл ?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2018, 18:30
Ответы с готовыми решениями:

Как правильно структурировать проэкт с++ ?
Столкнулся с такой проблемкой, касающейся подключения заголовочных файлов в с++: Если...

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

Компиляция проекта в Visual Studio 2012: как это правильно делается?
В общем не получается скомипилировать проект, вроде делаю все правильно (Построение&gt;Построить...

Как можно функцию описаную в одном файле включить во все файлы проекта
Задача такая Определяю функцию в файле 1.сpp void test(){ int i=0; } как мне подключить...

Как правильно объявить константы для всего проекта, который состоит из нескольких файлов
какой-нибудь Variables.h в котором будет что-то типа: #define A 50 #define B 40 или ...

3
QuakerRUS
479 / 434 / 207
Регистрация: 30.10.2017
Сообщений: 1,390
Завершенные тесты: 3
25.08.2018, 19:08 2
Цитата Сообщение от Goose45 Посмотреть сообщение
то тогда как оформить то что лежит в папке класс
Что вы имеете ввиду? Все же оформлено уже.

Цитата Сообщение от Goose45 Посмотреть сообщение
И вообще, правильно ли, выносить определение методов из класса в отдельный файл ?
Да. В этом случае при перекомпиляции проекта, вам не придется повторно перекомпилировать методы, если в них не было изменений. Как следствие быстрее компилируется проект.
1
mvngr
96 / 82 / 61
Регистрация: 15.04.2018
Сообщений: 325
25.08.2018, 22:19 3
Цитата Сообщение от Goose45 Посмотреть сообщение
как правильно структурировать файлы проекта
С моей точки зрения существует множество подходов, и ни один из них не является правильным. Ты можешь это делать как хочешь, главное соблюдать логику, чтобы потом было легче организовывать доступ к чему-либо, да и чтобы дирректории назывались прозрачно
1
trifecta
8 / 7 / 6
Регистрация: 18.09.2017
Сообщений: 50
26.08.2018, 08:53 4
Лучший ответ Сообщение было отмечено Goose45 как решение

Решение

Организовывай проект вот так:

Код
└── project
    ├── CMakeLists.txt
    ├── Makefile
    ├── readme.md
    ├── doc
    │   └── design.md
    ├── include
    │   └── mpu.hpp
    ├── src
    │   └── mpu.cpp
    └── test
        └── mpu.t.cpp
Т.е.:
  • make-файлы, солюшены - в корень проекта
  • заголовочные файлы - в include
  • исходники (cpp) - в src
  • тесты - в test
  • документацию - в doc

Далее, hpp/cpp пара файлов обычно делается на каждый класс, в hpp - определение, в cpp - реализация. Inline методы остаются в hpp.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2018, 08:53

Как правильно инклудить файлы
Приветики. С книге по C++, которую я читал, был дан логичный пример подключения файлов, то-бишь: ...

Как правильно расположить заголовочные файлы?
Здравствуйте, проблема такая: Имею три класса #ifndef __ACCOUNT_H__ #define __ACCOUNT_H__ ...

Как правильно подключать заголовочные файлы?
прошу более продвинутых прогеров чем я найти и/или сделать ту библиотеку которая включает функции...


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

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

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