Аватар для Bangemin
0 / 0 / 1
Регистрация: 06.11.2015
Сообщений: 99
1

Разделение программы на .h .cpp .cpp

29.04.2016, 19:19. Показов 2081. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Никак не пойму как правильно разделять программу на несколько файлов.

Вот код : ( в чем проблема ? )


main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "tproc.h"
using namespace std;
 
int main()
{
    string word = "hello world";
 
    LowerCase(word);
 
    cout << word;
 
    system("pause>>nul");
    return 0;
}
tproc.h

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
29
30
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <string>
#include <cstring>
#include <cctype>
#include <fstream>
#include <sstream>
#include <algorithm> // for replace
 
#ifndef _TEXT_EDITION_H_
#define _TEXT_EDITION_H_
 
using namespace std;
 
void Capitalize(string&);
void ToLower(char&);
void ToUpper(char&);
void LowerCase(string&);
void UpperCase(string&);
string ToUppercase(string&);
string EditWord(string&);
bool IsPresent(string&, string, int);
void DeleteSpaces(string&);
bool DifferentSymbolsIn(string&);
void Enter(string, string&);
void Enter(string, int&, int);
string IntToStr(int);
 
#endif
tproc.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "tproc.h"
 
void ToLower(char& ch)
{
   ch = tolower(ch);
}
 
void ToUpper(char& ch)
{
   ch = toupper(ch);
}
 
void LowerCase(string& string)
{
    for_each(string.begin(), string.end(), ToLower);
}
//...
0
Лучшие ответы (1)
29.04.2016, 19:19
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2016, 19:19
Ответы с готовыми решениями:

Разделение на .cpp и .h
Здравствуйте! Прошу прощения за повтор, честно смотрела другие похожие, но все равно не разобралась. Нужно разделить программу на •...

Разделение на h и cpp
На форуме есть темы с таким же названием, но тамошние приемы мне что-то не помогают. Жил был файл InfotrigsList.h, в нем был класс...

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

8
return (true);
 Аватар для mimicria
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
29.04.2016, 19:23 2
Цитата Сообщение от Bangemin Посмотреть сообщение
Никак не пойму как правильно разделять программу на несколько файлов.
А зачем в данном случае её вообще разделять?
0
 Аватар для Bangemin
0 / 0 / 1
Регистрация: 06.11.2015
Сообщений: 99
29.04.2016, 19:47  [ТС] 3
Я потом буду создавать еще 2 файла с классами, и хотелось би чтобы эти функции били в отдельном файле

Добавлено через 22 минуты
Зачем тогда сюда писать если помогать толком и не собирался?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.04.2016, 23:56 4
Цитата Сообщение от Bangemin Посмотреть сообщение
в чем проблема ?
И в чём проблема? Добавляй файлы в проект.
0
 Аватар для Bangemin
0 / 0 / 1
Регистрация: 06.11.2015
Сообщений: 99
30.04.2016, 12:29  [ТС] 5
Ну вот не работает. Не знаю что делать
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
30.04.2016, 17:04 6
Цитата Сообщение от Bangemin Посмотреть сообщение
Ну вот не работает
Что значит: "не работает"? Не компилируется, или что?
0
 Аватар для Bangemin
0 / 0 / 1
Регистрация: 06.11.2015
Сообщений: 99
30.04.2016, 20:51  [ТС] 7
yes
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
30.04.2016, 21:08 8
Цитата Сообщение от Bangemin Посмотреть сообщение
yes
Пишет что?
0
1 / 1 / 1
Регистрация: 21.11.2015
Сообщений: 20
01.05.2016, 10:24 9
Лучший ответ Сообщение было отмечено Bangemin как решение

Решение

Перед препроцессорными переменными ничего не должно стоять, даже комментарии, как я знаю(ifndef, define). И вроде можно не включать библиотеку iostream в мэин, но можно и включать, т.к. она у тебя в заголовочном есть. И не надо в заголовочном файле объявлять библиотечные функции - using namespace std; А прописывать в ручную std:: и т.д.
1
01.05.2016, 10:24
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2016, 10:24
Помогаю со студенческими работами здесь

Разделение шаблона на h и cpp и макросы
известно, что нельзя в общем случае разделить шаблон на h и cpp, конкретизация шаблона и export, который после с++11 исключен, не в счет....

Разделение кода на cpp и h файлы
Добрый день. Расскажите, пожалуйста, как разделить код на два файла cpp и файл h. #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Подключение файлов main.cpp some.cpp some.h
Всем привет, программа разделенна на три файла poly.cpp main.cpp poly.h Кто мог бы объяснить как происходит подключение этих файлов, и как...

Библиотеки в CPP. Ошибка компиляции | CPP
Доброго вечера! Появился один вопросик недавно. Начал юзать библиотеку &lt;windows.h&gt; для использования такой команды как...

Мешает ли разделение кода на объявление (.h) и определение (.cpp) inline оптимизации?
Читал что когда включают хедер но не реализацию в единицу трансляции, это мешает компилятору инлайнить функции/методы ввиду того что...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Контейнер std::map в C++
bytestream 09.02.2025
Контейнер std::map в C++ - один из наиболее мощных инструментов стандартной библиотеки, предназначенный для хранения пар ключ-значение. Каждый элемент в map состоит из уникального ключа и связанного. . .
Как в Python сделать вывод с print без перевода строки и пробела
hw_wired 09.02.2025
Функция print в Python обеспечивает гибкие возможности для вывода информации в консоль. При стандартном использовании эта функция автоматически добавляет символ перевода строки в конце выводимого. . .
Как в Python проверить, что у объекта есть атрибут
hw_wired 09.02.2025
В Python существует несколько встроенных способов проверки наличия атрибутов у объектов. Наиболее распространенным является использование функции hasattr(), которая позволяет безопасно определить. . .
Как удалить экспортированну­ю переменную окружения в Linux
hw_wired 09.02.2025
В Linux работа с переменными окружения - важная часть системного администрирования и разработки. Экспортированные переменные окружения отличаются от обычных локальных переменных тем, что они доступны. . .
Ошибка Error: error:0308010C:­digital envelope routines::unsup­ported
hw_wired 09.02.2025
Ошибка "error:0308010C:digital envelope routines::unsupported" чаще всего появляется при работе с Node. js приложениями и связана с изменениями в системе безопасности криптографических алгоритмов. . . .
В чем отличие между .prop() и .attr()
hw_wired 09.02.2025
В jQuery методы . prop() и . attr() часто вызывают путаницу, поскольку на первый взгляд предназначены для похожих целей. Однако между ними существуют принципиальные различия в работе с DOM-элементами и. . .
В чем отличие SCSS и SASS
hw_wired 09.02.2025
SCSS и SASS появились как решение проблем, связанных с ограничениями обычного CSS при разработке крупных веб-проектов. Традиционный CSS, несмотря на свою простоту, не предоставлял разработчикам. . .
Как найти дубликаты в таблице базы данных
hw_wired 09.02.2025
Дублирование записей в таблицах баз данных может возникать по разным причинам: ошибки при вводе данных, некорректная работа систем импорта, слияние данных из разных источников или неправильная. . .
Как удалить дубликаты из массива в JavaScript
hw_wired 09.02.2025
Самый простой и современный способ удаления дубликатов в JavaScript - использование структуры данных Set в сочетании с Array. from. Set автоматически хранит только уникальные значения, а Array. from. . .
Go Protobuf: новый Opaque API
hw_wired 09.02.2025
Protocol Buffers (protobuf) давно зарекомендовал себя как эффективный формат сериализации данных, широко используемый в микросервисных архитектурах и распределенных системах. Однако существующая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru