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

В чем смысл полиморфизма - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При считывании из файла последний элемент читается дважды http://www.cyberforum.ru/cpp-beginners/thread1501631.html
Всем доброго времени суток! Нашёл граблю. Считываю из файла слова, разделённые пробелами, в vector<string>. Для куска кода, которые по моему разумению должны работать одинаково, выдают разный ответ. Кусок 1: string temp; vector<string> a; while (infile >> temp) a.push_back(temp);
C++ Зачем нужны дружественные функции Здравствуйте! Начал изучать "друзей" в С++, но в моём странном учебнике данная тема описывается буквально в 2-х абзацах. В одном абзаце даётся определение дружественных классов, в другом - дружественных функций. Далее без всяких примеров использования "друзей" начинается новая тема. Решил я почитать статьи в интернете по этой теме, начал с дружественных функций. Перечитав множество статей, я... http://www.cyberforum.ru/cpp-beginners/thread1501629.html
Разобрать программу перевода в различные системы счисления C++
Здравствуйте.Вопрос такой:Есть задача написать программу для перевода из 16сс(системы счисления) в 10сс+есть решение. //Вопрос:x обозначает степень,и изначально он равен 0.При вводе в программу числа F5 выдает правильный результат.Почему?ведь любое число в нулевой степени=1.получается должно быть так (70-55)*(16^0)+(5*15^1)=95,то есть ответ неверный. #include <math.h> #include <iostream>...
Считывание double чисел из txt в массив C++
Надо считать числа в массив double. Не использовать <iostream> и <fstream> и <iomanip>. Не работают, пробовала, все примеры которые находила используют их. Пробовала - Segm. fault и считывает только первое число и только его целую часть. for (int i = 0; i < 35*17; i++) { fscanf(e,"%lf\n",&val); printf("%.4f\n",val);
C++ Как ковертировать из ASCII опять в string? http://www.cyberforum.ru/cpp-beginners/thread1501581.html
Всем доброго здравия. Нашел программу, которая переводит буквы строки в порядковые номера по таблице ASCII, с помощью функции length(). Подскажите пожалуйста существует ли функция, которая бы перевела обратно порядковые номера в строку. P.S. Прошу быть толерантным к моей тупости.
C++ При первом запуске нового проекта HelloWorld в IDE CLion возникает ошибка Добрый день! Установил IDE CLion. Установил компилятор. Первая загрузка с проектом HelloWorld. Выдает вот такое сообщение. Кто-нибудь может подсказать в чем проблема. подробнее

Показать сообщение отдельно
hoggy
5602 / 2232 / 411
Регистрация: 15.11.2014
Сообщений: 5,025
Завершенные тесты: 1
20.07.2015, 12:18     В чем смысл полиморфизма
Цитата Сообщение от zss Посмотреть сообщение
никакого полиморфизма нет.
есть. статический.

обычно он реализуется посредством перегрузки,
либо посредством шаблонов.

но в данном случае он был реализован за счет приведения по иерархии наследования.
это работает, потому что сам по себе std::ostream не более, чем обертка,
которая делегирует задачу своему очень даже полиморфному внутреннему механизму буфера вывода.

http://www.cplusplus.com/reference/ios/ios/rdbuf/

Цитата Сообщение от zss Посмотреть сообщение
операция разыменования *os приводит к тому,
что этот метод вызывался бы как обычный, а не как виртуальный.
ничего подобного.

C++
1
2
3
4
5
IAnimal& reference = getAnimal();
 
reference.virtualMethod(); // <--- для ссылок динамический полиморфизм 
// работает точно так же
// как и для обычных указателей.
Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
Вы продемонстрировали не полиморфизм, а родственность производных классов.
он продемонстрировал два принципиально разных поведения
(вывод в консоль, или вывод в файл),
осуществляемых через единый интерфейс для объектов разных типов.

это и есть красноречивый пример полиморфизма.


"родственность производных классов" - это конечно круто звучит.
учитывая, что так можно обозвать
любое проявление динамического полиморфизма,
осуществляемого посредством виртуальных функций-членов.
 
Текущее время: 03:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru