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

Наследование классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу на с++ по теории информации http://www.cyberforum.ru/cpp-beginners/thread583556.html
ЛИНЕЙНЫЕ ГРУППОВЫЕ КОДЫ Закрепление знаний по методам кодирования информации. 1. Построить линейный групповой код, способный исправлять одиноч-ную ошибку. Вариант взять из лабораторной № 4. 2. Привести пример 10 кодовых комбинаций. 3. Показать процесс исправления ошибки в заданном разряде k. 4. Составить программу, кодирующую и декодирующую кодовую комбинацию-помогите написать, или...
C++ Вывод больше заданного значения Доброго времени суток! Помогите пожалуйста разобраться как правильно организовать вывод списка работников, зарплата которых больше заданной. Функция void spispaid. Я так понимаю, сравнивать spis.getpaid с целым числом нельзя, т.к. это указатель и целое. Все что получилось ниже, поправьте если что не так #include <QtCore/QCoreApplication> #include <iostream> #include <string> #include... http://www.cyberforum.ru/cpp-beginners/thread583552.html
C++ Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49).
1. Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49). 2. Дано натуральное число n. Определите, является ли оно степенью числа 2, и выведите слово YES, если является и слово NO, если не является. 3. Для данного натурального числа n определите такое наименьшее целое k, что 2k≥n. Например, при вводе...
Синхронизация, семафор C++
Помогите синхронизировать код. const int j=20; hSemaphore = CreateSemaphore(NULL, 0, 1, NULL); DWORD __stdcall Process(LPVOID) { int t; WaitForSingleObject(hSemaphore, INFINITE);
C++ найти ошибку http://www.cyberforum.ru/cpp-beginners/thread583518.html
кто знаком с алгоритмом шифрования IDEA ,расшифровывает неправильно,не знаю почему,вот весь проект,с файлами,bac_text.txt -текст котор@ы надо зашифровать/расшифровать.temp.txt-записывает результат шифрования/дешифровки.
C++ winAPI консоль Добрый День .Можно сделать так что бы не смотреть на нудную загрузку консоль ,а сделать пока идёт загрузка картинку и будет там по центру надпись высвечивать "Ожидайте завершения загрузки"а когда консоль загружается ,картинка убирается и появляется консоль подробнее

Показать сообщение отдельно
Bers
Заблокирован
23.05.2012, 09:01     Наследование классов
Цитата Сообщение от Ksan Посмотреть сообщение
Bers, вопрос не КАК, а ЗАЧЕМ. Зачем учебники объясняют редко. Так что ты можешь дальше идти в гугл.
Представь себе, у тебя есть класс "спецназовцов". Спецназ должны уметь владеть любым типом вооружения твоей игры. У спезназовца есть метод "Стрелять".

Этот метод принимает на входе указатель на конкретный тип оружия. Например:

Солдат->Стреляй(пистолет); //должен суметь произвести выстрел
Солдат->Стреляй(автомат); //должен суметь произвести выстрел
Солдат->Стреляй(пулемет); //должен суметь произвести выстрел

Однако, каждый конкретный вид вооружения - это отдельный самостоятельный тип данных. Который может иметь собственные дополнительные методы, или данные-члены.

Даже размер данных "пистолет" может отличатся от размера данных "пулемет". Это два принципиально разных класса.

Как ты сможешь научить своего солдата уметь стрелять из любого вида оружия?
Даже из такого, код которого ещё даже и не написан?

Смысл полиморфизма заключается в том, что вызывающая сторона (солдат) думает, что имеет дело только с одним типом данных ("оружие". Он не знает что это - "пистолет", или "автомат").
Но знает, что чем бы ни было это "оружие", у него есть спусковой крючок.
Тогда задача солдата - только нажать на этот крючок.
А вот, как конкретно в каждом отдельном случае будет срабатывать спусковой механизм, каждое конкретное оружие (пистолет, автомат, и тп) разберутся сами.

Получается, что задача солдата - нажать на курок, а задача любого типа оружия (каким бы оно ни было) - выстрелить.
Солдат знает, как нажимать на курок. Оружие знает, как стрелять.

Получается: ты один раз пишешь интерфейс управления оружием. Один раз учишь свой спецназ пользоваться этим интерфейсом. И можешь штамповать всякие разные пистолеты/автоматы в любых количествах.

Новый тип вооружений не потребуют от твоих спецназовцев переделки уже написанного кода (не нужно будет дописывать никаких дополнительных условий и тп). Спецназ будет уметь нажимать на курок любого (даже ещё не существующего) оружия, у которого есть привычный курок.

http://www.programmersclub.ru/38/
 
Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru