-21 / 5 / 3
Регистрация: 14.03.2013
Сообщений: 130
1

Что такое статический полиморфизм?

26.05.2013, 20:11. Показов 43185. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
что такое статический полиморфизм?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2013, 20:11
Ответы с готовыми решениями:

Что такое полиморфизм?
помогите понять, что такое полиморфизм , читаю книгу, не могу вникнуть, как я понялполиморфизм это...

Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала
Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны....

Статический полиморфизм
Есть базовый класс Employee и производный от него Boss. И в базовом, и в производном классе есть...

Статический полиморфизм. Базовый класс «прямоугольник»
Здравствуйте, дорогие участники форума! Помогите, пожалуйста! Необходимо реализовать статический...

32
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
26.05.2013, 20:47 2
Цитата Сообщение от Mar-12 Посмотреть сообщение
статический полиморфизм?
Например, перегрузка функций.
Конечное действие определяется во время компиляции.

При динамическом полиморфизме - на этапе выполнения
1
-21 / 5 / 3
Регистрация: 14.03.2013
Сообщений: 130
26.05.2013, 21:13  [ТС] 3
Croessmah, а кроме перегрузки какие еще примеры можете сказать?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
26.05.2013, 21:19 4
Инстанцирование шаблонов.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
26.05.2013, 21:22 5
C++
1
2
3
4
5
template <typename Obj>
void Foo(Obj obj)
{
   obj.doSomething();
}
функция компилируется или не компилируется в зависимости от того, есть ли у объекта типа
Оbj method doSomething или мембер с именем doSomething, для которого можно применить оператор ();
все это дело определяется на этапе компиляции. и в зависимости от объекта, вызов
будет делать то или иное. причем тут объекты не связаны между собой каким-нибудь
базовым классом как в случае с динамическим полиморфизмом, где похожее поведение
достигается за счет виртуальных функций.
1
Заблокирован
26.05.2013, 21:27 6
Цитата Сообщение от Mar-12 Посмотреть сообщение
что такое статический полиморфизм?
Я это называю проще - затирание.
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
26.05.2013, 21:28 7
Цитата Сообщение от _Mutex Посмотреть сообщение
Я это называю проще - затирание.
!=
Это не одно и тоже
0
Эксперт С++
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
26.05.2013, 23:19 8
Цитата Сообщение от _Mutex Посмотреть сообщение
затирание
впервые вижу этот термин - он обще-употребителен?
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
26.05.2013, 23:24 9
Цитата Сообщение от ITcrusader Посмотреть сообщение
впервые вижу этот термин - он обще-употребителен?
не понятно только что это означает - переопределение или перекрытие. По слову - переопределение, по логике ответа - перекрытие
0
Заблокирован
28.05.2013, 12:02 10
Цитата Сообщение от Croessmah Посмотреть сообщение
!=
Это не одно и тоже
это одно и тоже.
C++
1
2
3
4
5
6
7
8
class A{
public:
    void S(){};
};
class B:public A{
public:
    void S(){};
};
Здесь переопределение метода в потомке затирает метод родителя, а затирает потому, что вызов метода родителя становится невозможен без явного указания, из класса потомка. Но если привести потомка к родителю, то вызовется именно метод, родителя. Фактически нечего не происходит, каждый имеет свою версию функции и вызывает ее - это и обозвали статическим полиморфизмом, а я называю проще - затирание.

Переопределение - это повторное определение, вне зависимости виртуальная ф-я или нет.
Добавлено через 10 минут
Цитата Сообщение от ITcrusader Посмотреть сообщение
впервые вижу этот термин - он обще-употребителен?
это не термин.
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
28.05.2013, 12:12 11
Цитата Сообщение от _Mutex Посмотреть сообщение
Цитата Сообщение от Mar-12 Посмотреть сообщение
что такое статический полиморфизм?
Я это называю проще - затирание.
Цитата Сообщение от _Mutex Посмотреть сообщение
что вызов метода родителя становится невозможен без явного указания, из класса потомка.
Это лишь одно из проявлений статического полиморфизма, а не сам статический полиморфизм, так что !=
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
28.05.2013, 12:21 12
http://stackoverflow.com/quest... phism-in-c тут и про статик есть.
0
Заблокирован
28.05.2013, 12:33 13
Цитата Сообщение от Croessmah Посмотреть сообщение
Это лишь одно из проявлений статического полиморфизма, а не сам статический полиморфизм, так что !=
это все и есть статический полиморфизм, другого нет.

Добавлено через 41 секунду
Цитата Сообщение от ForEveR Посмотреть сообщение
http://stackoverflow.com/quest... phism-in-c тут и про статик есть.
зачем выкладывать ссылки из ниоткуда , если есть простые авториретные страницы
http://ru.wikipedia.org/wiki/C... 0.B7.D0.BC


Друзья мои, если вам что то не нравится, учите теорию. Не надо на меня накидываться все разом, как волки на мясо.
Ответ последний.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
28.05.2013, 12:41 14
_Mutex, Википедия авторитетнее stackoverflow? Are you kidding me?
0
Заблокирован
28.05.2013, 12:43 15
Друзья мои, если вам что то не ясно - учите теорию.
Не надо на меня бросаться все разом, как волки (( ...Я свой ответ пояснил, на этом все.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
28.05.2013, 12:44 16
_Mutex, Это вам нужно учить теорию. Полиморфизм в С++ многонранен и не ограничивается ТОЛЬКО динамическим. То, что вы привели, является частным случаем статического полиморфизма.
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
28.05.2013, 12:57 17
Цитата Сообщение от _Mutex Посмотреть сообщение
если есть простые авториретные страницы
Не в данной тематике. Но если для Вас это авторитетная страница, то вот Вам с википедии цитата:
Полиморфизм может пониматься как наличие точек кастомизации в коде, когда один и тот же написанный программистом фрагмент кода может означать разные операции в зависимости от чего-либо.

В одном случае конкретный смысл фрагмента зависит от того, в каком окружении код был построен. Это т.н. статический полиморфизм. Перегрузка функций, шаблоны в Си++ реализуют именно статический полиморфизм. Если в коде шаблонного класса вызвана, например, std::sort, то реальный смысл вызова зависит от того, для каких именно типовых параметров будет развернут данный шаблон - вызовется одна из std::sort<T>.
Добавлено через 1 минуту
Цитата Сообщение от _Mutex Посмотреть сообщение
Друзья мои, если вам что то не ясно - учите теорию.
Вот вот, учите теорию...и не по википедии

Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от ForEveR Посмотреть сообщение
Википедия авторитетнее stackoverflow?
Видимо да :)
Самое интересное, что если пройти по ссылке на указанную страницу википедии, то там есть ссылка на страницу с определением полиморфизма, откуда, собственно и приведена цитата :facepalm:



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от _Mutex Посмотреть сообщение
Друзья мои, если вам что то не нравится, учите теорию.
Цитата Сообщение от _Mutex Посмотреть сообщение
Не надо на меня накидываться все разом, как волки на мясо.
И кто тут на кого еще набросился:(

0
Заблокирован
28.05.2013, 13:16 18
Цитата Сообщение от Croessmah Посмотреть сообщение
Не в данной тематике. Но если для Вас это авторитетная страница, то вот Вам с википедии цитата:


Добавлено через 1 минуту

Вот вот, учите теорию...и не по википедии
статический полиморфизм , это именно то, что я вам показал ранее. Принцип полиморфизма. Из нескольких вариантов значений на этапе компиляции выбирается подходящий, этот пример показывает суть статического полиморфизма. Это не частный случай полиморфизма, это показательный пример.

Вы мне показываете реализации стат. полиморфизма и говорите .. вот видишь еще тут и тут. Вы пишете про следствие. Да принцип тут этот используется, но кроме как в стат. полиморфизме больше нигде.
ГДЕ в статическом полиморфизме используется ДРУГОЙ принцип? Покажите где?
Я говорил и говорю, что называю это затиранием, когда выбирается один вариант и недоступен другой (затерт).
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
28.05.2013, 13:20 19
_Mutex, Я может слегка не понимаю, но как это можно назвать затиранием?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <typeinfo>
 
template<typename T>
void function()
{
   std::cout << typeid(T).name() << std::endl;
}
 
int main()
{
   function<int>();
   function<double>();
}
0
Croessmah
28.05.2013, 13:24     Что такое статический полиморфизм?
  #20

Не по теме:

Кстати,

Цитата Сообщение от _Mutex Посмотреть сообщение
Переопределение - это повторное определение, вне зависимости виртуальная ф-я или нет.
Если функция не виртуальна, то происходит банальное перекрытие, а не переопределение :)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2013, 13:24

Полиморфизм. Как в предке объявить статический массив, который можно будет использовать в наследниках?
Всем привет. Мне необходимо в классе предке объявить статический массив который можно будет...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru