Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
#1

Полиморфизм - C++

27.09.2009, 13:02. Просмотров 1698. Ответов 1
Метки нет (Все метки)

полиморфизм

runtime vs compile polymorphism:
как вы на проектах определяете, когда стоит пользоваться шаблоном, а когда виртуальными функциями?

полиморфизм аргументов функции:
допустим у меня в классе-интерфейсе A определена виртуальная функция принимающая и возвращающая ссылку или указатель на структуру a

можно ли в реализации интерфейса B, поменять тип аргументов функции или тип возвращаемого значения на b, унаследованный от a?

если да, то что произойдет, если через указатель типа A* на объект типа B передать ссылку на структуру b?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2009, 13:02     Полиморфизм
Посмотрите здесь:

Полиморфизм - C++
Вот сделал прогу а ее надо было сделать полиморфизмом - кому несложно переделайте #include <iostream.h> #include <conio.h> ...

Полиморфизм - C++
Имеется такая задача Создать абстрактный базовый класс Integer (целое) с виртуальными арифметическими операциями и функцией вывода на...

Полиморфизм - C++
Прочитал в Википедии что такое полиморфизм: Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций». ...

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

Полиморфизм в с++ - C++
Вообщем я делал программу,изначально в ней было реализовано наследование.Затем дали задание реализовать полиморфзим для функции Scale для...

Наследование и полиморфизм - C++
Добрый день ребятюни!! Срочно требуется ваша помощь! Программа которая служит для вывода выдающихся учеников и преподов. Если у...

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

Полиморфизм и деструктор - C++
Данный код является полиморфизмом? #include <iostream> using namespace std; class ABC { public: virtual void Print() { ...

Не работат полиморфизм - C++
Почему при запуске этого кода, в консоли две четверки? Если верить книге в которой был похожий пример, должно быть 4, а затем 20. ...

ООП. Полиморфизм - C++
Мальчики, учусь на МехМате. Для сдачи зачёта по ООП необходимо написать последнюю программу: Задание: полиморфизм Указание: во всех...

STL и полиморфизм - C++
Доброго времени суток! Исходная информация: класс а-базовый,b-производный у этих ребят определён виртуальный метод(для класса "a"...

ох уж этот полиморфизм - C++
Добрый день. имеются классы: class element {...} class tableProcedure : public element {...} Проблема в следующем: имеется...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
27.09.2009, 19:52     Полиморфизм #2
В теории, критерий выбора очень прост. Если на этапе компиляции известны типы данных, лучше воспользоваться статическим полиморфизмом, если нет - динамическим. На самом деле до этого вопроса обычно не доходит, потому что они просто применяются в разных ситуациях и ты заранее знаешь ответ.

Менять типы аргументов не получится, таким образом будет просто объявлена другая виртуальная функция, принадлежащая уже только классу B. Но можно либо работать с объектом типа b через предоставляемый a интерфейс (в том числе и через виртуальные функции), либо через dynamic_cast приводить указатель a* к типу b*. Впрочем, при использовании dynamic_cast надо каждый раз остановиться и задуматься: "А правильно ли я это дело спроектировал и так ли уж мне это надо на самом деле?", и продолжать только если имеется убедительно аргументированный положительный ответ.
Yandex
Объявления
27.09.2009, 19:52     Полиморфизм
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru