русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Указатели и ссылки на производные классы?


Дата добавления: 2015-07-09; просмотров: 991; Нарушение авторских прав


В общем случае указатель одного класса не может указывать на объект другого класса.

Но в производных классах указатель на базовый класс может указывать на объект производного класса, полученного из этого базового класса.

Для получения доступа к элементам подкласса с помощью указателя на базовый класс, нужно воспользоваться приведением типов.

Например, вызов функции show_phone() класса Nasl_object с приведением типов выглядит следующим образом:

((Nasl_class *)p)-> show_phone();

С технической точки зрения такое приведение типов является правильным, НО рекомендуется по возможности его избегать, так как приведение типов может служить источником дополнительных ошибок в коде.

Указатель на базовый класс может использоваться и как указатель на производный объект. ОДНАКО указатель на производный класс не может использоваться для доступа к объектам базового типа.

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

То есть, если указатель на базовый класс указывает на объект подкласса, инкремент или декремент его не даст указатель на следующий объект подкласса. Поэтому нельзя использовать эти операции, когда они указывают на объект производного класса.

Ссылки на базовый класс могут быть использованы для ссылок на объект подкласса. То есть, если параметр является ссылкой на базовый класс, то он может принимать значение ссылки, как на объект базового класса, так и на объекты подкласса. Такая техника наиболее употребительна при работе с функциями.

 



<== предыдущая лекция | следующая лекция ==>
Конструкторы и деструкторы производных классов? Порядок вызова конструкторов и деструкторов при множественном наследовании? | Что такое полиморфизм? В каких формах он может существовать?


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.303 сек.