Есть ли термин для этой техники?Одним из ярких примеров является WinAPI: SendMessage( hwnd, msg, info1, info2 )
, где параметры # 3 и # 4 имеют смысл только для msg
(что также означает, что существуют случаи, когда требуется только один или ни один из этих двух параметров). См. MSDN .
Перефразировано: имеется универсальная функция, которая всегда принимает несколько аргументов, но их интерпретация зависит от предыдущего аргумента.Я не хочу говорить об открытых массивах, открытых аргументах, типизированных аргументах ... Я все это знаю.Это не то, что я спрашиваю - я хочу иметь термин для этого типа функций (любой может быть также, как называются неопределенные параметры).
Это не о приведениях или передаче по ссылке -Типы параметров всегда одинаковы.Другой пример: calculate( char operation, int a, int b )
, который затем используется как
calculate( '+', 2, 5 )
(параметры # 2 и # 3 являются слагаемыми) calculate( '/', 4, 2 )
(параметр # 2 является делителем ипараметр # 3 - это делитель) calculate( '!', 3, 0 )
(параметр # 2 - это факториал, а параметр # 3 не используется)
Во всех этих случаях тип данных всегда одинакови никогда не кастировал.Но значение параметров № 2 и № 3 различается в зависимости от параметра № 1.И поскольку это так, трудно дать этим параметрам осмысленное имя. Конечно, сама функция, скорее всего, использует switch () , но это не является предметом моего вопроса.Как называются параметры # 2 и # 3, когда невозможно найти отдельное имя, но типы данных всегда одинаковы?