|
Программирование >> Дополнительные возможности наследования
8. Напишите профамму, которая создает два объекта класса SimpleCircle. Для создания одного объекта используйте конструктор, заданный по умолчанию, а второму экземпляру при объявлении присвойте значение 9. С каждым из объектов используйте оператор инкремента и выведите полученные значения на печать. Наконец, присвойте значение одного объекта другому объекту и выведите результат на печать. 9. Жучки: что неправильно в следующем примере использования оператора присваивания? SQUARE SQUARE ::operator=(const SQARE & rhs) { itsSide = new int; itsSide = rgs.GetSideO; return this; 10. Жучки: что неправильно в следующем примере использования оператора суммирования? VeryShort VeryShort :;operator+ (const VeryShort& rhs) { itsval += rhs.GetltsValO; return this; ЛвньЦй Нашдованив Фундаментальной основой человеческого мышления является поиск, выявление и построение взаимоотношений между различными концепциями. Чтобы постичь хитросплетения отношений между вешами и явлениями, мы используем иерархические построения, матрицы, сети и Прочие средства визуализации. Чтобы лучше выразить суть отношений между объектами, в С++ используется иерархическая система наследования. Сегодня вы узнаете: Что представляет собой наследование Как произвести один класс из другого Что такое защищенный доступ и как его использовать Что такое виртуальные функции Что такое наследование Что такое собака? Что вы видите, когда смотрите на своего питомца? Я вижу четыре лапы, обслуживающие зубастую пасть. Биолог увидит систему взаимодействующих органов, физик - стройную систему атомов и совокупность разных видов энергии, а ученый, занимающийся систематикой млекопитающих, - типичного представителя вида Canis familiaris. Каждый смотрит на объект со своей точки зрения, но сегодня нас будет интересовать последнее утверждение, а именно: собака является представителем семейства волчьих, класса млекопитающих и т.д. С точки зрения систематики любой объект живой природы рассматривается в плане принадлежности одной системе иерархических таксонов: царству, типу, классу, отряду, семейству, роду и виду. Иерархия представляет собой вид отношений подчиненности типа принадлежности частного общему. Так, человек является видом приматов. Подобный тип отношений можно видеть повсюду. Грузовик является видом машин, а машина, в свою очередь, является видом транспортных средств. Пирожное является видом сладких блюд, а сладкие блюда являются видом пищи. Когда мы говорим, что нечто является видом чего-то, то подразумеваем большую детализацию объявления объекта. Так, отмечая, что машина - это вид транспортных средств, мы из всевозможных средств передвижения (от повозки до самолета) выбираем только четырехколесные устройства с двигателем. Иерархия u наследование Говоря о собаке, как представителе класса млекопитающих, мы подразумеваем, что она наследует все признаки, общие для класса млекопитающих. Поскольку собака - млекопитающее, можно предположить, что это подвижный вид животных, дыщащих воздухом. Все млекопитающие по определению двигаются и дыщат воздухом. Если определить некий объект как собаку, это добавит к объявлению способность вилять хвостом, фызть рукопись книги, которую я как раз собрался нести в редакцию, бегать по дому и лаять, когда я сплю... о извините, куда меня занесло! Ну так вот, продолжим. В свою очередь, собак можно разделить на служебных, спортивных и охотничьих. Потом можно пойти дальще и описать породу собаки: спаниель, Лабрадор и т.д. Таким образом, мы можем сказать, например, что фокстерьер - это порода охотничьих собак, в которой представлены все признаки, общие для собак вообще, а также все признаки, общие для млекопитающих и т.д., включая признаки всех таксонов, к которым относится фокстерьер. Пример такой иерархии показан на рис. 11.1, где стрелками связаны категории более низкого уровня с категориям следующего порядка. Animal Mammal Reptile Horse
Retrievers Spaniels Labradors Goidens Puc. 11.1. Иерархия млекопитающих В С++ иерархичность реализована в концепции классов, где один класс может происходить, или наследоваться от класса более высокого уровня. В наследовании классов реализуются принципы их иерархической подчиненности. Предположим, мы производим новый класс Dog (Собака) от класса Mammal (Млекопитающее). Другими словами, класс Mammal является базовым для класса Dog. Точно так же, как описание вида собака несет в себе признаки, детализирующие описание млекопитающих в целом, так и класс Dog содержит ряд методов и данных, дополняющих методы и данные, которые представлены в классе Mammal.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |