С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 30

Есть ли смысл в .h файлах?

02.03.2020, 17:23. Показов 1535. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть или не есть? вот в чем вопрос))
ладно пошутили и хватит, а в действительности для чего они нужны если все равно вся реализация происходит в .cpp файлах
да и вообще к другим файлам точно также можно подключать .cpp как и .h, аля #include "source.cpp" / #include "source.h"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2020, 17:23
Ответы с готовыми решениями:

Есть 2 файла. В файлах числа, найти самое большое число в обоих файлах
С++ Есть два файла В обоих файлах записаны слова Найти самое большое число в обоих файлах

Есть ли смысл устанавливать третью плашку, когда есть две, работающие в двух каналах?
День добрый! Можно ли расширять память третей плашкой ОП, если уже установлены две, работающие в двухканальном режиме. Будет ли от...

Есть ли смысл помечать функции как inline, если их прототип уже есть в .h файле?
Есть ли смысл помечать функции как inline, если их прототип уже есть в .h файле? Функции в одну строчку, сразу в ретарне вычисляет...

23
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
02.03.2020, 17:33
Цитата Сообщение от EASYBOT Посмотреть сообщение
точно также можно подключать .cpp
если в одном файле cpp есть тело функции и этот файлик ты подключишь в другой cpp то получишь 2 тела одной и той же функции
0
 Аватар для _-_VLADoS_-_
130 / 87 / 48
Регистрация: 27.12.2019
Сообщений: 510
02.03.2020, 17:37
EASYBOT, Вот небольшой пример для чего нужен .h и .cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//MyClass.h
 
class MyClass 
{
public:
MyClass(); //метод без реализации в .h
};
 
//MyClass.cpp
 
#include"MyClass.h" 
 
MyClass::MyClass() //реализация метода в .cpp
{
cout<<"HelloWorld"<<endl;
}
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4573 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
02.03.2020, 17:38
EASYBOT, кроме реализации есть еще куча всего, что необходимо для каждого cpp-файла.
Например, прототипы функций, описания структур, констант, макросов, и т.п. Их что копировать из файла в файл?
Когда проект маленький, можно и обойтись. А вот, когда придется заниматься большим проектом, то увидите, насколько удобны h-файлы.
А вот включать cpp-файлы по include - плохое решение...
1
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
02.03.2020, 17:43
Вместо cpp-файла может быть скомпилированная библиотека. В h-файле будет ее интерфейс.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
02.03.2020, 17:46
EASYBOT, говорят что от хедеров не только благо, ссылка
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
02.03.2020, 17:48
Цитата Сообщение от _stanislav Посмотреть сообщение
ссылка
Жалко что в MSVC не работает подсветка синтаксиса с модулями еще (ixx файлы итд), или я что то не донастроил
0
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 30
07.03.2020, 12:12  [ТС]
_-_VLADoS_-_,
не работает твой медот в этом примере
weapon.h
C++
1
2
3
4
5
6
7
8
class weapon
{
public:
void virtual check_ammo();
protected:
short ammo;
short count_ammo = 0;
}
weapon.cpp
C++
1
2
3
4
5
#include "weapon.h"
weapon::check_ammo()
{
    cout << count_ammo << '/' << ammo << endl;
};
и пишет две ошибки отсутствует явный тип и объявление несовместимо ибо оно уже существует

Добавлено через 6 минут
в принципе есть выход для объявления реализации, делать в хедере виртуальные функции и делать отдельный дочерний класс для самой реализации через метод override, чтобы потом уже наследовать все что нужно от того дочернего класса, но это примитивно(но работает), а твой метод просто не работает хотя пишу вроде тоже самое пример сверху

Добавлено через 15 минут
_-_VLADoS_-_, я нашел как правильно это делать вот ссылка)
https://ravesli.com/urok-122-k... nye-fajly/
0
Злостный нарушитель
 Аватар для Verevkin
10242 / 5670 / 1261
Регистрация: 12.03.2015
Сообщений: 26,272
07.03.2020, 12:28
Неудобство работы с хэдерами очень сильно ощущается, когда перелезаешь на С/С++ с pascal/delphi. И это печально...
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
07.03.2020, 12:38
Цитата Сообщение от EASYBOT Посмотреть сообщение
weapon::check_ammo()
А возвращаемый тип будет Василий Пушкин указывать?
0
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 30
07.03.2020, 12:55  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
А возвращаемый тип будет Василий Пушкин указывать?
Croessmah, я это исправил когда зашел на сайт а пример я взял отсюда
Цитата Сообщение от _-_VLADoS_-_ Посмотреть сообщение
//MyClass.h
class MyClass
{
public:
MyClass(); //метод без реализации в .h
};
//MyClass.cpp
#include"MyClass.h"
MyClass::MyClass() //реализация метода в .cpp
{
cout<<"HelloWorld"<<endl;
}
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
07.03.2020, 13:03
EASYBOT, в примере описан конструктор, а у него нет возвращаемого значения. А у вас - функция - и у нее оно должно быть. Плюс к этому, у вас не хватает точки запятой, после объявления класса.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
07.03.2020, 13:03
Цитата Сообщение от EASYBOT Посмотреть сообщение
а пример я взял отсюда
А в примере конструктор, у него нет возвращаемого значения.

Добавлено через 25 секунд
Цитата Сообщение от DrOffset Посмотреть сообщение
в примере описан конструктор, а у него нет возвращаемого значения.
мдя...
0
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 30
07.03.2020, 13:04  [ТС]
объясните почему это код не работает проект во вложении
Вложения
Тип файла: rar easy_engine.rar (1.60 Мб, 2 просмотров)
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
07.03.2020, 13:11
EASYBOT,
1) Не надо подключать cpp через include.
2) Сделайте отдельный h-файл для класса sw1911
3) protected наследование тут не нужно
0
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 30
07.03.2020, 13:23  [ТС]
DrOffset, а какое тогда наследование нужно, я же тогда не смогу присвоить значения в конструкторе класса sw1911? или смогу???

Добавлено через 4 минуты
DrOffset, ПОЧЕМУ, ПОЧЕМУ ЭТО РАБОТАЕТ?

Добавлено через 3 минуты
DrOffset, а как брать значения ammo и count_ammo из конструктора класса sw1911 для их использования в функциях a.fire(); и a.reload();
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
07.03.2020, 13:43
Цитата Сообщение от EASYBOT Посмотреть сообщение
а какое тогда наследование нужно
Я думаю всем очевидно, что S&W 1911 является оружием.
Поэтому наследование нужно публичное.
0
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 30
07.03.2020, 14:20  [ТС]
DrOffset, а как брать значения ammo и count_ammo из конструктора класса sw1911 для их использования в функциях a.fire(); и a.reload();, потому что при вызове создается ошибка,но как правильно вызвать функцию объекта(что писать в аргументах)

Добавлено через 8 минут
DrOffset, я ответил на свой вопрос просто убрав аргументы из функции)))
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
07.03.2020, 17:58
Цитата Сообщение от EASYBOT Посмотреть сообщение
Есть ли смысл в .h файлах
а если подумать, то в переносах и некоторых отступах тоже не смысла)
C++
1
2
3
#include <iostream>
#include <cmath>
using std::cout;int main(){cout<<"Hello,world";int a=10;cout<<sqrt(a);}
0
 Аватар для _-_VLADoS_-_
130 / 87 / 48
Регистрация: 27.12.2019
Сообщений: 510
07.03.2020, 22:05
EASYBOT, конструктор не возвращает значение он вызывается когда создаётся объект, а у вас функция с возвращаемым типом short
Есть одно элегантное решение:
C++
1
2
short a;
return  a;
https://ravesli.com/urok-116-konstruktory/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2020, 22:05
Помогаю со студенческими работами здесь

Есть "база Excel" есть ли смысл переносить в нормальную базу?
Добрый день! существует дилемма! есть файл который формируется очень давно и имеет очень большую важность для нашего отдела да и для всего...

Есть ли смысл?
У меня: amd athlon 7550 dual-core processor 2gb ОЗУ GeForce GT 9600. Если оставить проц и поставить GeForce GT610. И поставить 2...

Есть ли смысл?
Еще со времен школы нам говорили, что математика не имеет смысла по себе, она лишь инструмент для предметной области мол. Но в институте...

Есть ли смысл?
Вопросы на засыпку : 1) Говорят, что 1ps и reggun.ru не помогают, а только вредят. То есть если зарегаю через них сайт конкурента...

А есть ли смысл?
Живу в Израиле. Знаю VB.6, VB.NET, ASP, ASP.net, JScript, Access, HTML, SQLServer 2000, немного COM.... Образец моей работы можно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru