https://en.wikipedia.org/wiki/Function_overloading

я есть несколько вопросов о концепциистатический полиморфизм Я кое-что слышу о; Вы можете интерпретировать их в первую очередь в контексте C ++, но я бы оценил независимые от языка ответы там, где это применимо (следовательно, помечая как C ++, так и не зависящий от языка).

Как мыопределять статический полиморфизм вообще? В качестве примера я считаю, чтоstd::sort функция из C ++ должна считаться статически полиморфной, поскольку она зависит от интерфейса, предоставляемого некоторыми объектами, которыевести себя как итераторыиточное поведение под интерфейсом предоставляемых итераторов может быть определено во время компиляции. Это объяснение, как мы определяем статический полиморфизм, или это просто описание конкретного случая, и это еще не все?

Каковы общие шаблоны кода использования статического полиморфизма в C ++? Также: есть ИПтолько достигается с помощью шаблонов в C ++?

Это правда, что данная диаграмма классов UML ненепосредственно опишите, как обрабатывается полиморфизм и, таким образом, он может быть хотя бы частично реализован статически или динамически? Другими словами: является ли выбор статического или динамического полиморфизма независимым от модели ООП и, следовательно, зависит от разработчика?

Является ли статический полиморфизм только C ++ - специфичным и связано с тем, как работают шаблоны? Если нет, присутствует ли он в любом другомосновные языки кроме С ++? Можем ли мы иметь эквивалент статического полиморфизма в Java, C # ... что-нибудь, и принесет ли он какие-либо преимущества?

Самое важное...Каковы реальные преимущества использования статического полиморфизма? Я думаю, мы можем согласиться, что это уменьшает гибкость кода; Каковы преимущества, кроме того - в случае C ++ - сохранение разыменования одного указателя (виртуальная функция / указатель на функцию / стоимость делегата)? Что этокласс проблем где статический полиморфизм особенно полезен, правильный выбор для реализации?

Ответы на вопрос(0)

Ваш ответ на вопрос