У меня есть 3 небольших (по 15 строк) функций утилиты, лучший способ их организовать? помещать их в собственное пространство имен в файл заголовка?
Организация функций утилиты в С++
Ответ 1
Создайте отдельный файл с именем utility.hpp
и поместите в него все объявления функций, предпочтительно под его собственным пространством имен, которое может быть просто utility
, а затем поместите определения в utility.cpp
. Если какая-либо из функций утилиты является шаблоном функции, вы должны поместить определение в заголовок.
Избегайте определять утилиту class
и помещать в нее все функции утилиты как члены static
. Это серьезно плохая идея. Одна из причин, по которой это плохо, заключается в том, что он не может воспользоваться аргументом Dependent name Lookup (ADL).
Вместо этого используйте пространство имен.
Пример
//utility.hpp
namespace utility
{
void function1();
void function2();
void function3();
template<typename T>
void function4()
{
//function template definition should be here!
}
}
И затем,
//utility.cpp
#include "utility.hpp"
namespace utility
{
void function1()
{
//code
}
void function2()
{
//code
}
void function3()
{
//code
}
}
Ответ 2
вы можете проверить google styleguide для С++ для некоторых полезных советов по этой теме... однако: есть много стигелидов, как вы может делать что-то более или менее полезными способами... Лучшая практика - выбрать один стиль, а затем придерживаться его для всего проекта для согласованности... (если вы/ваши команды не почувствуете себя очень неудобно...)
Ответ 3
Создайте отдельный класс утилиты с Util.h(декларациями) и Util.cpp с реализацией. Вы также можете использовать его, используя интерфейс утилиты, но зависит.