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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с FTP http://www.cyberforum.ru/cpp-beginners/thread52695.html
Приветы всем! Помогите, пожалуйста, решить такую задачку... вот недавно начал изучать СИ и вот назрела мысль...:) итак, пользователь задаёт хост, логин и пасс от ФТП сервера, далее выбират один из пунктов radio button (если первый радио - грузятся первая группа файлов, второй - вторая группа и т.д.), далее нажимает кнопку "Загрузить" и в прогресс баре отображается ход загрузки файлов, по...
C++ Баг в MinGW при использовании fread Ну собственно вот простой тестовый код который выполняется некорректно: #include <cstdio> using namespace std; const int N = 2500; int main() { int *array = new int; http://www.cyberforum.ru/cpp-beginners/thread52218.html
Нахождение суммы C++
Помогите пожалуйста решить задачу. Даны натуральные числа N и M(N>M) вычислить: S=знак суммы(E),вверху N внизу k=M (k^2*ln(k!))
Очень нужен Borland C++ 5.0, подскажите где найти можно? C++
очень нужен Borland C++ 5.0, подскажите где найти можно, уже перелазил в гугле хрен знает сколько страниц
C++ Несколько целей из одного набора исходников в графических средах http://www.cyberforum.ru/cpp-beginners/thread51816.html
Имеется некий набор исходников, из которых собираются несколько разных программ. Программы собираются из пересекающегося множества исходников, но с различными опциями. В юниксе для этого используются Makefile'ы и приказы "make" с различными целями. Можно ли что-то подобное делать в графических оболочках (Borland Builder, MSVS)? Например, есть файлы t1.c t2.c t3.c из которых собираются...
C++ Реализация операторов new и delete правильно ли я понимаю, что при вызове classname *x = new classanme; и реализации оператора, new, скажем void * __cdecl operator new (unsigned int size) { return __opeation_that_allocates_size_bytes_of_memory(size); } конструктор класса classname будет вызван автоматически, а при написании скажем, такого кода, classname * x = (classname*)... подробнее

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

Менять типы аргументов не получится, таким образом будет просто объявлена другая виртуальная функция, принадлежащая уже только классу B. Но можно либо работать с объектом типа b через предоставляемый a интерфейс (в том числе и через виртуальные функции), либо через dynamic_cast приводить указатель a* к типу b*. Впрочем, при использовании dynamic_cast надо каждый раз остановиться и задуматься: "А правильно ли я это дело спроектировал и так ли уж мне это надо на самом деле?", и продолжать только если имеется убедительно аргументированный положительный ответ.
 
Текущее время: 06:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru