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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
#1

Как более грамотно называть функцию и заголовочный файл, в котором она находится? - C++

17.08.2012, 09:27. Просмотров 1534. Ответов 5
Метки нет (Все метки)

Этот вопрос у меня возник недавно, после того, как я нечайно состряпал ошибку. У меня был массив left_boundary_Vteta [SIZE_TIME], а также функция left_boundary_Vteta(). Так вот, оказалось, что так нельзя. Имена совпадают, вылазиет ошибка. Я назвал функцию func_left_boundary_Vteta() и всё заработало. И тут у меня возник вопрос: а как быть с названием заголовочного файла, в котором эта функция лежит? У них названия то тоже совпадают: функция func_left_boundary_Vteta() лежит в заголовочном файле func_left_boundary_Vteta.h. Хотя при этом компилятор ошибку не выдаёт. Мне это теперь кажется несколько странным. То есть, я так понимаю, имена функции и заголовочного файла, в котором эта функция находится, могут совпадать? Так что ли?

Но а как будет лучше то? Есть ведь что-то типо "культуры программирования". Дескать "можно сделать и так и вот так, но вот таким способом более грамотно". Так вот что делать с названиями? Например, функцию, меняющую местами 2 переменные swap(x,y) я поместил в заголовочный файл swap.h. Может лучше было назвать его SWAP.h? Так он хоть как-то отличается (большие и маленькие буквы в С++ это вроде существенный момент). Или, например, функцию, подсчитывающую наибольший общий делитель двух чисел nod(a,b) лучше наверное поместить в файл под названием NOD.h?

Одним словом, мне стало интересно, как поступают в этом случае профессиональные программисты? Можете кто-нибудь привести мне пару примеров с названиями ваших функций и названиями заголовочных файлов, в которые Вы их складываете? (это мой вопрос).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2012, 09:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как более грамотно называть функцию и заголовочный файл, в котором она находится? (C++):

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым - C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f...

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

Как подключить свой заголовочный файл? - C++
По книге Липпмана занимаюсь, нужно подключить заголовочный файл .h. Добавлял его как класс и как существующий элемент, но пишет одно и тоже...

Как восстановить заголовочный файл sal.h? - C++
При компиляции выскакивали ошибки, связанные с sal.h. Я удалила его подчистую, теперь выдаются ошибки в math. h и не компилируется вообще...

Как создать заголовочный файл в Visual Studio? - C++
Вот хочу создать например небольшую библиотеку для часто используемых "кусков" кода. Толковую информацию по этому поводу что-то не...

Как подключить свой заголовочный файл в Borland 3.1 - C++
Друзья,у меня свой заголовочный файл с расширением .h ,который я буду вызывать в основном файле .cpp . Но при компиляции вызывает ошибку...

5
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
17.08.2012, 09:39 #2
для 1 функции заголовочный файл?
0
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
17.08.2012, 09:53  [ТС] #3
Цитата Сообщение от DaskOFF Посмотреть сообщение
для 1 функции заголовочный файл?
Да. Это неправильно?
0
Байт
Эксперт C
16144 / 10422 / 1552
Регистрация: 24.12.2010
Сообщений: 19,730
17.08.2012, 10:17 #4
Цитата Сообщение от Alex Z Посмотреть сообщение
Да. Это неправильно?
Это полное ваше право, но так обычно не делают. Нерентабельно.
Вообще, поймите такую вещь, что заголовочные файлы просто включаются (вставляются) директивой #include в транслируемый файл (исходный модуль) еще до всякой компиляции.
Перед компилятором оказывается просто один текстовой файл.
Так, вы имеете полное право написать
C
1
2
#include "my.txt"
#include "fu_fu.cpp"
и прекомпилятор все это прекрасно скушает, конечно, если эти файлы есть.
Просто программисты так договорились, что в файлы с расширением .h, .hpp помещаются описания типов данных и прототипы функций, причем обычно в одном таком файле собираются "родственные" структуры и функции.
2
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.08.2012, 03:38 #5
Цитата Сообщение от Alex Z Посмотреть сообщение
Например, функцию, меняющую местами 2 переменные swap(x,y) я поместил в заголовочный файл swap.h.
Направление правильное. Если довести идею до конца, то нужно так делать. Прототип функции swap(x,y) разместить в заголовочном файле swap.h. Реализацию этой функции - в файле swap.cpp. В этом файле сделать #include "swap.h". Функцию main() - в файле main.cpp. В этом файле тоже сделать #include "swap.h". Если функций много, то по тому же принципу действовать, но, конечно, для каждой функции по файлу не выделять, а, прототипы всех функций - в заголовочный файл (название по желанию) , их реализации - в файл с таким же названием, но с расширением .cpp (там сделать include заголовочного файла), функцию main() - в файл main.cpp (тут тоже сделать include заголовочного файла).
1
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,797
Записей в блоге: 17
18.08.2012, 03:51 #6
Например, функцию, меняющую местами 2 переменные swap(x,y)
Тут таких два нюанса:

1. Ф-ция swap уже есть в std::, поэтому лучше свою ф-цию обвернуть в свое пространство имен
C++
1
2
3
4
namespace my
{
void swap(T& x,T& y);
}
2. Логично сделать ф-цию swap() шаблонной и в таком случае она будет размещаться целиком в h-файле
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2012, 03:51
Привет! Вот еще темы с ответами:

Как правильно подключить свой заголовочный файл? - C++
Есть два файла. Основной файл - "2.cpp" #include <iostream> #include <windows.h> #include <string.h> #include <map> ...

Как правильно организовать заголовочный файл со своими функциями? - C++
Есть файл в котором я храню функции, которые часто использую(среди них есть и шаблонные). Например: //Utils.h template <typename...

пдскажите функцию которая выводит русский текст на экран и его заголовочный файл с++ но не system ( " echo текст " ); - C++
пдскажите функцию которая выводит русский текст на экран и его заголовочный файл с++ но не system ( " echo текст " );

Не находится заголовочный файл созданного компонента - C++ Builder
Пробую создать новый компонент на основе базового. Знаний по этой теме очень мало, обучаюсь по Архангельскому. Создал заготовку компонента,...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
18.08.2012, 03:51
Ответ Создать тему
Опции темы

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