Определение и реализация статического полиморфизма [закрыто]

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

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

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

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

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

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

28
задан Kos 29 December 2010 в 19:23
поделиться