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

Есть необходимость? - C++

Восстановить пароль Регистрация
 
mytest
5 / 5 / 0
Регистрация: 10.02.2013
Сообщений: 36
07.10.2013, 21:12     Есть необходимость? #1
Везде рекомендуют создавать класс (любой элемент) в ".h" файлах, а описывать уже непосредственно в ".cpp", есть ли в этом необходимость, почему нельзя описать все классы и их содержимое в "головах", а использовать потом в единственном ".cpp" файле? Почему имеено так? И главное: чем гразит такие использование. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 21:12     Есть необходимость?
Посмотрите здесь:

Возникла необходимость в основном коде вызвать функцию и чтобы код продолжал выполнение, НЕ ДОЖИДАЯСЬ окончания работы этой функции C++
Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму C++
Есть натуральное число n. Проверить, есть ли в том числе 3 одинаковых цифры C++
Необходимость реализации виртуальнй функции C++
C++ В каких случаях возникает необходимость в создании своего деструктора?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.10.2013, 21:14     Есть необходимость? #2
Цитата Сообщение от mytest Посмотреть сообщение
почему нельзя описать все классы и их содержимое в "головах", а использовать потом в единственном ".cpp" файле?
потому что такой заголовочный файл уже будет "срр" файлом. Ведь в нем будут определения членов класса, которые должны быть в программе в единственном экземпляре
Убежденный
Системный программист
 Аватар для Убежденный
14194 / 6209 / 985
Регистрация: 02.05.2013
Сообщений: 10,346
Завершенные тесты: 1
07.10.2013, 21:14     Есть необходимость? #3
реализация класса в .h файле хорошо или плохо?
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.10.2013, 21:16     Есть необходимость? #4
Цитата Сообщение от mytest Посмотреть сообщение
Почему имеено так?
потому что это одно из фундаментальнейших достижений языка Си и UNIX культуры - все есть файл и Раздельная компиляция, которая достигается этим.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
07.10.2013, 21:19     Есть необходимость? #5
Когда компьютеры были большими, а память - маленькой, это было необходимостью. Потом стало привычкой. А привычка - сильная вещь.

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

Некоторые (любители C# и Java) и на C++ пишут все классы в хедерах. Мотивируют тем, что так компиляция идет быстрее. Я сам время компиляции не сравнивал, но в таком стиле писал. Ничего страшного.
Yandex
Объявления
07.10.2013, 21:19     Есть необходимость?
Ответ Создать тему
Опции темы

Текущее время: 01:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru