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

Смысл использования полиморфизма - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск максимума и локальных минимумов в массиве http://www.cyberforum.ru/cpp-beginners/thread1746132.html
Помогите решить задачу, пожалуйста В массиве х, из n эл-ов, найти: Максимум(значение и номер). Два последовательных минимума.
C++ Работа с текстовым файлом (запись/чтение) Здравствуйте, дорогие форумчане! Задали сделать программу, которая должна создавать файл, а потом совершать его чтение. Само задание : "Чемпионат города по футболу проводится по 2 группам: сильная (8 команд) и слабая (8 команд). Замещение мест в сильной группе проводится по результатам переходного турнира, в котором участвуют 3 худших команды из сильной группы и 3 лучших из слабой. Составить... http://www.cyberforum.ru/cpp-beginners/thread1746072.html
C++ В массиве определить первый положительный элемент и произведение последующих
Выходные данные : целочисленный массив В размером kn , где k = 4, n = 5 Определить номер первого положительного элемента и произведение следующих элементов
Одновременное нажатие на несколько кнопок при выводе ответа в MessageBox C++/CLI WinForms
В форме есть TextBox и 3 кнопки - "x^3", "x^6", "x^9". Нужно, чтоб ответы выводились в MessageBox так, чтобы можно было одновременно нажимать на несколько кнопок. Помогите, пожалуйста :)
C++ Чтение из файла определенного поля без записи в буфер предыдущих полей http://www.cyberforum.ru/cpp-beginners/thread1745989.html
как на чистом си считать конкретное поле при этом не заводить переменные. формат такой: %d %s %c %d ..... если использовать fscanf(file,"%d", ЗДЕСЬ мы не указываем переменную куда пишется считанное число), то падает с segfault. переменная обязательно нужна, иначе не работает. Я не хочу заводить лишние переменные, а просто хочу считать результат 4 поля. то есть последней %d. fseek не...
C++ Переставить строки матрицы так, чтобы суммы элементов строк были расположены в порядке их возрастания Задать двумерный массив размерами m и n. Обработать массив согласно заданию, вывести на печать исходный и обработанный массивы. «m=4,n=5.Переставить строки массива так, чтобы сумма элементов строк были расположены в порядке их возрастания. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2804 / 1580 / 247
Регистрация: 03.05.2010
Сообщений: 3,675
26.05.2016, 17:17     Смысл использования полиморфизма
Цитата Сообщение от Dobbyman Посмотреть сообщение
Это все замечательно, но почему? Каждый раз, чтобы это сделать, нужно создавать en1,en2 , хотя т.к. уже есть наследование, то методы доступны и через lo и na. Да, мы реализовали доступ через базовый класс. Но зачем?
Ну, чтобы это понять, нужно получше разобраться что такое открытое наследование. А это некоторая специализация базового класса, т.е. описание некоторого подмножества множества объектов базового класса.
Ну, к примеру, базовый класс у нас Станок. И у множества объектов-станков есть подмножество объектов - сверлильных станков. Для описания этого подмножества объявляем класс-наследник Сверлильный_станок. Базовый класс можно специализировать в наследнике просто добавляя новые члены (данные и функции), а можно специализировать поведение базовых функций-членов, это как раз и делается через механизм виртуальных функций.
Ну, допустим, вы отдаете всем объектам-станкам в цеху команду Обработать_деталь. С одной стороны, это базовая функция-член класса Станок, так как все станки должны обрабатывать детали. С другой - каждый станок обрабатывает деталь в соответствии со своей специализацией, - сверлильный - сверлит, токарный точит, и т.д.
Технически для этого нужно создать коллекцию указателей на базовый класс Станок, и поместить туда адреса всех объектов-станков. Тогда, чтобы каждый станок начал обрабатывать деталь, нужно всем станкам дать команду Обработать_деталь, и каждый выполнит ее в соответствии со своей специализацией.
 
Текущее время: 13:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru