Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
(Модератор:
Вад
) > Тема:
runtime vs compile polymorphism
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: runtime vs compile polymorphism (Прочитано 9985 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mayor
Специалист
Offline
runtime vs compile polymorphism
«
:
26-09-2009 09:45 »
вроде бы немного почитал про шаблоны, немного про виртуальные функции и возник вопрос:
как вы на проектах определяете, когда стоит пользоваться шаблоном, а когда виртуальными функциями?
«
Последнее редактирование: 27-09-2009 19:10 от Вад
»
Записан
1n c0de we trust
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: runtime vs compile polymorphism
«
Ответ #1 :
26-09-2009 09:54 »
Mayor
, Вообше то у шаблонов и виртуальных функций разная область применения. Почти не пересекаюшаяся. Так что я не пойму, что вызывает у тебя затруднение в выборе между двумя методами.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
Mayor
Специалист
Offline
Re: runtime vs compile polymorphism
«
Ответ #2 :
26-09-2009 10:08 »
незнание их областей применения, из-за того что только что почитал и то и другое - не понимаю, что лучше подсунуть классу параметр или указатель на объект с виртуальными фукнциями
Записан
1n c0de we trust
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: runtime vs compile polymorphism
«
Ответ #3 :
26-09-2009 10:24 »
Mayor,
виртуальная функция позволяет выполнять метод потомка через указатель на родителя
шаблон позволяет описать семейство классов
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: runtime vs compile polymorphism
«
Ответ #4 :
26-09-2009 10:31 »
Проше говоря.
Когда у тебя стоит задача над разными типами данных совершить одни и теже действия - это шаблон.
Когда у тебя стоит задача переопределить действия у класса. То это полиморфизм и виртуальные функции. При этом никто не запрешает применять полиморфизм в шаблонах. Просто не рекомендуют этим заниматься. Так как количество кода будет не пропорцианально расти, при формировании и компиляции программы.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
Mayor
Специалист
Offline
Re: runtime vs compile polymorphism
«
Ответ #5 :
26-09-2009 15:21 »
че то абстрактность плохо переваривается...
калькулятор работающий с целыми, произвольной точностью, комплексными числами - лучше всего впишется в шаблон?
список, контейнер - лучше в шаблон?
где лучше использовать виртуальные функции, чем шаблоны?
пользовательский интерфейс?
3д объекты?
регэкспы?
Записан
1n c0de we trust
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: runtime vs compile polymorphism
«
Ответ #6 :
26-09-2009 16:02 »
Все шаблоны в самой программе преврашаются в обычные классы. В рунтайме шаблонов совсем нет. Все исчезают на стадии компиляции. И созданы только для одной цели, облегчить программисту жизнь. Чтобы он меньше пользовался технологией copy-paste при написании кода программы. Например vector<int> list; ты уже конкретизируеш шаблон. И кстати не все функции шаблонов будут расмотрены компилятором. А только те, которые ты используеш. Если например ты не используеш size, то она не будет скомпилорована в код программы. Это кстати одна из причин, которая плодит код если делать полиморфные шаблоны. Кстати точность вычеслений калькулятора можно регулировать и без шаблона. Вычислять на максимальной точности. А пользователю отдавать ту точность, к которой он готов.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
Mayor
Специалист
Offline
Re: runtime vs compile polymorphism
«
Ответ #7 :
27-09-2009 05:23 »
те
если объекту не нужно передавать параметры типов, то полиморфизм не нужен
если параметры типов известны на этапе компиляции ( тот же элемент контейнера например), то можно пользоваться шаблоном
если тип самого объекта или объекта на который он ссылается будут известны только на этапе выполнения, то придется пользоваться рантайм полиморфизмом?
...
рылся в инете по данной теме и только что наткнулся на объявление виртуальной функции в шаблоне, это поддерживается msvc9 и g++ 4.3 ?
«
Последнее редактирование: 27-09-2009 06:20 от Mayor
»
Записан
1n c0de we trust
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: runtime vs compile polymorphism
«
Ответ #8 :
27-09-2009 10:27 »
Mayor
, Читай теорию. Ты все мои рассуждения перевернул с ног на голову. Что на некоторых форумах расценивается как троллинг.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
Mayor
Специалист
Offline
Re: runtime vs compile polymorphism
«
Ответ #9 :
28-09-2009 11:07 »
дак я и читаю теорию, если понимаю что написано, пишу код подтверждающий усвоение теории практикой
если не понимаю как по этой теории писать код, спрашиваю на форумах
зы то быдлокодером обзывают, то троллем
ззы тут то кого собственно говоря троллить?
все из тех, кто что-то здесь представляет, знают всех других, кто что-то из себя представляет и после аномизации грома уже давно друг с другом не ругаются
Записан
1n c0de we trust
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: runtime vs compile polymorphism
«
Ответ #10 :
28-09-2009 11:25 »
Твой вопрос равносилен
Цитата
вроде бы немного почитал про знак плюс, немного про знак умножить и возник вопрос:
как вы на проектах определяете, когда стоит пользоваться прибавлением, а когда умножением?
Записан
Не будите спашяго дракона.
Джаффар (Коша)
Mayor
Специалист
Offline
Re: runtime vs compile polymorphism
«
Ответ #11 :
28-09-2009 12:42 »
твоя цитата напоминает вопрос с собеседования у мелкомягких, можно наплести че нить типа:
ну так как * приоритетнее +, то следует употреблять * в тех случаях когда операция при разборе выражения должна выполниться в первую очередь, с другой стороны операция * на гомогенных выражениях с заданным свойством нуля позволяет в отличие от +, провести проверку попадания в выражение нулевого(неопределенного) операнда по получении результата, без кропотливых проверок каждого операнда требуемых для гомогенных + выражений
Записан
1n c0de we trust
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: runtime vs compile polymorphism
«
Ответ #12 :
28-09-2009 14:01 »
Mayor, то есть, если ты хочешь посчитать 4+3 (хы) , то ты посчитаешь 4*3==12 , ведь * приорететнее ?
)
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
(Модератор:
Вад
) > Тема:
runtime vs compile polymorphism
Загружается...