Я пытался понять вспомогательные функции в C++ от The C++ Programming Language by Bjarne Stroustrup
. Но книга ничего не объяснила и не использовала ее в классах. Я попытался найти его в Интернете и нашел this. У меня есть суть этого, но все еще неясно, какова истинная цель вспомогательных функций, когда я должен использовать их и в целом, какие вспомогательные функции?Что такое вспомогательные функции в C++?
ответ
«Вспомогательная функция» не является термином, который вы найдете в стандарте, ни это точное определение ... стандарт упоминает «вспомогательный класс» или «помощник шаблона» несколько раз для ссылки на класс, который не предназначен для создания экземпляров конечными пользователями, но он обеспечивает полезную функциональность, внутренне используемую в другом классе.
Функции помощника (что, как я считаю, большинство людей означает, когда они говорят) обычно выполняет функции, которые обертывают некоторые полезные функции, которые вы собираетесь использовать повторно, скорее всего, снова и снова. Вы можете создать вспомогательные функции, предназначенные для использования в самых разных видах целей ...
Пример может служить функцией преобразования любого вида, например, функцию преобразования многобайтовые закодированного std::string
в std::wstring
:
std::wstring s2ws(const std::string& str)
{
int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0);
std::wstring wstrTo(size_needed, 0);
MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
return wstrTo;
}
[править] –
@MattiVirkkunen: Я отредактировал его так, чтобы это не звучало как определение. – LihO
Примером может служить функция проверки ввода, которую вы будете повторно использовать во всей основной функции. Предположим, у вас есть программа, которая запрашивает возраст пользователя, так как возраст является целым числом> 0, вам потребуется отдельная функция, которая заботится о «cin >> users_age;». Если вход удовлетворяет условию, тогда действуйте, иначе попросите пользователя повторно ввести свой возраст.
Это всего лишь пример «вспомогательной функции». Исправьте меня, если я ошибаюсь. Благодаря!
Существует большое определение вспомогательной функции от CppCoreGuidline:
Функция помощника является функцией (обычно поставляется писателем класса), который не нужен прямой доступ к представлению класс, но все же рассматривается как часть полезного интерфейса для класса. Размещение их в том же пространстве имен, что и класс, делает их отношение к классу очевидным и позволяет находить их с помощью зависимого от аргумента поиска.
Для получения дополнительной информации вы можете проверить paragraph с ясным примером, из которого берется верхняя цитата.
- 1. Что такое вспомогательные классы и скрипты?
- 2. Что такое вспомогательные объекты в java?
- 3. Что такое вспомогательные маршруты в Angular 2?
- 4. Дизайн класса C++ «вспомогательные функции»
- 5. Вспомогательные функции в какао
- 6. Как включить вспомогательные функции в C?
- 7. Вспомогательные функции в jsviews
- 8. Что такое эквивалент функции inet_addr в C#
- 9. Что такое | оператор в вызове функции? [C++]
- 10. Что такое «контекст подвески функции» в C++
- 11. Что такое функции отображения в C++?
- 12. Что такое несоответствие типа функции в c?
- 13. вспомогательные функции не работают
- 14. ReactJs Глобальные вспомогательные функции
- 15. Что такое автономные функции?
- 16. Что такое D's версия системной функции C++?
- 17. Что такое эквивалент Python функции чтения C?
- 18. Что такое C# эквивалент функции SQL STR?
- 19. C: Что такое временная сложность функции qsort?
- 20. Общие вспомогательные функции в бритве
- 21. Вспомогательные функции RotateFlipType?
- 22. Вспомогательные блоки в C#?
- 23. вспомогательные функции диаграммы последовательности
- 24. Асинхронные вспомогательные функции
- 25. Как организовать вспомогательные функции
- 26. Вспомогательные переменные в другой функции
- 27. Вспомогательные функции в спецификациях Kiwi
- 28. Что такое значение функции?
- 29. Что такое функции примера?
- 30. вспомогательные функции внутри вида
Возможно, вы можете привести пример? Я предполагаю, что он означает функции, не являющиеся членами, которые делают что-то полезное с объектом класса без необходимости добавлять функции-члены; или, возможно, частные функции-члены, которые помогают реализовать публичные; но для фразы нет универсального значения, поэтому он мог бы означать что-то другое. –
Нет «настоящей цели», это просто полезно использовать. Ничего страшного. – john
Для меня вспомогательная функция - это функция, которая, кстати, полезна. Это функция, которая не очень полезна сама по себе, но помогает вам сделать нужную вам программу. Я бы рассмотрел все функции [ '] (http://en.cppreference.com/w/cpp/algorithm) в качестве вспомогательных функций и многие другие в стандартной библиотеке (например, [функции итератора] (http: //en.cppreference.com/w/cpp/iterator)). –