Подготовительный курс по C++ разработке (Производные типы) Урок 14 ч.1

Автор German Usachev
Подготовительный курс по C++ разработке (Производные типы) Урок 14 ч.1

Всем привет дорогие друзья на нашем нынешнем занятие мы с вами обсудим новые темы, а именно указатели на производные типы и ссылки на производные типы так говорим про виртуальные функции для чего мы всё — это делаем, а для полиморфизма эти полиморфизм — это один из трех основных методов объектно-ориентированного программирования полиморфизм используются для описания процессов в котором различные реализации функции могут быть доступны с помощью одного и того же имени по причине полиморфизм иногда характеризуется фразой один интерфейсного много методов.

Это значит, что ко всем функциям членом общего класса можно получить доступ тем же способом несмотря на возможное различие в некоторых действиях связанных операции. Мы можем с помощью одного интерфейса получить доступ ко всем деталям наших с вами базовых классов плюсах полиморфизм поддерживается во время выполнения так и в период компиляции перегрузка операторов и функций — это опять же примеры полиморфизма, но они относятся ко времени компиляции несмотря на всё — это общество скажем так механизмы перегрузка операторов и функций они не в состоянии решить все задачи которые возникают у нас с вами в реальных приложениях объектно-ориентированного программирования. Поэтому в плюсах также реализован полиморфизм периода выполнения и он основан на использовании производных классов и виртуальные функции которые в общем-то и составляют основную тему нашего текущего занятия начнем ivideos краткое описание указателей на производные типы.

Во сколько.

Именно они обеспечивают поддержку динамического полиморфизм указатель на базовый класс. Может на. Любой объект выведенный из базового класса удивительно правда и фундаментом для динамического полиморфизма как раз таки и служат указатель на базовый класс указ на базовые и производные классы связанные с такими отношениями которые в общем-то несвойственные указателем других типов обычно указатель 1 типа не может указать другого, но указатели на базовые классы и объекты производных классов — это есть исключения все. ПЛЮСПЛЮС указатель на базовый класс также использовать для ссылки на объект любого класса который выделен из базового ну к примеру базовый класс. Б Ну и выведенный класс D плюсах любой указатель объявлены как указатель на класс. Б может быть точно также указателем in other в нашем с вами примере указатель п можно использовать для доступа ко всем элементам объекта d-apteka выведенными из объекта в объект, но клиентам которые составляют специфическую скажем так надстройку над базовым классом в анаше объекта д доступ с помощью указателя P NaOH получить нельзя немножечко обобщим указатель на базовый класс. Б может точно также ссылаться на объект производного класса D причём его можно использовать для доступа ко всем элементам производного класса который унаследовано от базового, но опять же помню через базу указатель невозможно получить доступ ко всем членам которые специфичны для производного класса. Если же вам нужна с помощью указателя на базовый класс получить доступ к элементам определённым производным классом то необходимо провести этот указательных типу указатели на производный тип понимаете да ну к примеру внешний набор круглых скобок используется для связи операции приведение типа с указателем п они с типом возвращаемого функцией some function. Несмотря на то, что в использовании такой операции формальный принцип плохого ты ничего и. Нет нужно этого избегать потому, что такие вот приёмы они носят путаницу ну честно говоря программисты считают такой стиль вообще-то неудачно. Кроме того необходимо, что хоть базовую указатель можно использовать для доступа к объектам любого произвольного типа обратно неверно другими словами используя указатель на класс нельзя получить доступ к объекту базового типа указатель можно инкрементировать иди комментировать относительно своего базового типа. Поэтому если указатель на базовый класс используется для доступа к объекту произвольного. Типа если мы инкрементируется комментируем то — это не заставит его ссылаться на следующий объект класса место — это он будет указывать на следующий объект базового таким образом инкрементирование или декантирование указателя на базовый класс следует расценивать как некорректный операцию если он используется для ссылки на объект производного класса тот факт указатель на базовый тип можно использовать для ссылки на. Любой объект выведены из базового очень-очень важен. И принципиально для плюсов. И как мы покажем с вами дали гибкости является таким ключевым моментом для реализации динамического полиморфизма в си плюс плюс честно с вами поговорим про ссылки на производные типы и указателем ссылку на базовый класс. Также можно использовать и для доступа к объекту произвольного типа — это возможность особенно часто применяется при передачи аргументов функции параметр который имеет тип ссылки на базовый класс может принимать объекты базового класса, а также объекты в общем-то любого другого типа выведенного из него его настала пора поговорить про виртуальные функции ведь динамический полиморфизм стало возможным. Только благодаря.

0 комментариев
0

Читайте также