Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Передача в функцию значения разных типов


Автор: Sniper_super 7.11.2008, 12:19
Здрасте!

Можна сделать так чтобы передавать в функцию параметры разных типов
Например, у меня есть функция
Код

void setParam( T param_name, T param_value )
{
...
}

где Т любой тип.
 И хочу вызывать эту функцию например
Код

setParam( _T("Number"), true );
setParam( _T("NumberRange"), "0" );
setParam( _T("Range"), 222 );
...
 

Автор: mrbrooks 7.11.2008, 12:23
Sniper_super, можно. Читай про шаблоны.

Автор: Sniper_super 7.11.2008, 12:24
я читал но чото не получается

Автор: chaos 7.11.2008, 12:36
Код

void setParam( T1 param_name, T2 param_value )
{
...
}


читай про шаблоны или посмотри на тип(нестандартный) variant(boost::variant). ТАК ЖЕ ЕСТЬ boost::any

Автор: Lycifer 7.11.2008, 13:11
Шаблоны или что в некоторых случаях более преемлевое, это 
void someFunction(char*str,...) - сколько угодно и чего угодно

Автор: Sniper_super 7.11.2008, 13:17
Напишу как решается эта проблема.

Код

template< typename T > // можна и писать class T
// LPCTSTR - так как имя всегда этого типа
void setParam( LPCTSTR param_name, T param_value )
{
...

}


и вызов функций
Код

// в скобках <> какой тип передаем
setParam<bool>( _T("Number"), true );
setParam<LPCTSTR>( _T("NumberRange"), _T("0") );
setParam<int>( _T("Range"), 222 );
...


Добавлено через 1 минуту и 51 секунду
Тема закрыта, спасибо за дискуссию!

Автор: J0ker 7.11.2008, 19:47
Цитата(Sniper_super @  7.11.2008,  13:17 Найти цитируемый пост)
Тема закрыта, спасибо за дискуссию! 

да? ну ладно... хотел немного поправить...  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)