Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2015, 00:31   #1
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию что такое обертка фунции

дана функция на входе получает 2 параметра имя и возраст.
srting children(string ima, int age)
Нужно написать обертку, для тестирования входящих параметров.
Правильно ли понимаю, что нужно написать функцию допустим test на входе получаем 2 параметра имя и возраст, в данной функции выполняется проходит проверка, что имя не пустая строка, состоящая из символов, без цифр и спец. символов, возраст не отрицательное число.
bool test(string ima, int age)
На выходе true/false подходит ли данный набор для функции children. Меня смущает слово ОБЕРТКА, не совсем понимаю значение этого слова, если я не прав - поправьте меня
polin11 вне форума Ответить с цитированием
Старый 19.09.2015, 00:40   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Наверно имелось в виду так:
Код:
string childrenWrapper(string ima, int age)
{
    if (age < 1)
        // обработать некорректное значение нужным образом: вывести ошибку, бросить Exception, присвоить другое и т.п.
        ...

    return children(ima, age);
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.09.2015, 08:59   #3
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

По идее обёртка для функции - это функция, вызывающая другую функцию, но сама не занимающаяся какой либо обработкой ни своих параметров, ни результата вызываемой функции. Проверка допустимости значений может обработкой и не считаться, а ни чего лишнего она делать не должна.
taras-proger вне форума Ответить с цитированием
Старый 19.09.2015, 09:14   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от taras-proger Посмотреть сообщение
По идее обёртка для функции - это функция, вызывающая другую функцию, но сама не занимающаяся какой либо обработкой ни своих параметров, ни результата вызываемой функции. Проверка допустимости значений может обработкой и не считаться, а ни чего лишнего она делать не должна.
Класс TObject, тоже обёртка. Придумана, что-бы облегчить жизнь программёрам. Похоже - осложнила
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.09.2015, 11:11   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну TObject это не просто обертка. Обертка это скорее TRegistry какой-нибудь.

И вообще тут речь про функции.

https://en.wikipedia.org/wiki/Wrapper_function
Цитата:
A wrapper function is a subroutine whose main purpose is to call a second subroutine or a system call with little or no additional computation.

...

Wrapper functions can be used to write error checking routines for pre-existing system functions without increasing the length of a code by a large amount by repeating the same error check for each call to the function. All calls to the original function can be replaced with calls to the wrapper, allowing the programmer to forget about error checking once the wrapper is written.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.09.2015, 06:01   #6
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Класс TObject, тоже обёртка.
Над чем? TObject - базовый класс иерархии.
taras-proger вне форума Ответить с цитированием
Старый 20.09.2015, 09:20   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Над чем? TObject - базовый класс иерархии.
Над функциями, ставшими его методами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.09.2015, 09:23   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут иерархия? TRegistry тоже почти базовый (не считая TObject), но даже в документации написано, что он обертка.
Иерархия (да и вообще ООП) не имеет отношения к этому. Обычно под оберткой имеется в виду "оборачивание"/инкапсулирование какого-то другого компонента/API, чтоб сделать работу с ним проще. Например, обертка над WinApi функциями для работы с реестром, чтобы не париться (и не допускать ошибок при копипасте) с проверкой возвращаемых значений/GetLastError, передачей аргументов в нужном виде и т.п..
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 20.09.2015 в 09:28.
Alex11223 вне форума Ответить с цитированием
Старый 20.09.2015, 09:32   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Не, мы об обёртках или наследованиях? TObject - обёртка. И базовый класс тоже. Смотря чего вы хотите добиться. Си, такой язык, о котором можно спорить вечно. Всё равно, к единому мнению не придём. Давайте, просто будем исполнять на нём задачи, и усё.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.09.2015, 09:41   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Си-то тут причем? Обертка не имеет отношения ни к конкретному языку, ни к парадигме, в любых языках можно создавать обертки над чем-то.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что такое f. spezzA Паскаль, Turbo Pascal, PascalABC.NET 1 13.06.2011 16:21
Что такое хорошо, а что такое плохо... EL_MoC Microsoft Office Word 6 14.04.2011 18:49
Что такое @? k1r1ch Общие вопросы Delphi 11 11.09.2009 20:15
Что такое SE LOPKOT HTML и CSS 5 31.08.2009 21:50
то такое мастерство в программировании, что такое мастер программист и что он может? Cezar Свободное общение 29 02.06.2007 23:48