Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

R.10 Производные классы





В описании класса можно указать список базовых классов с помощьюследующих конструкций: спец-базовых:: список-базовых список-базовых: спецификация-базовых список-базовых, спецификация-базовых спецификация-базовых: полное-имя-класса virtual спецификация-доступа opt полное-имя-класса спецификация-доступа virtual opt полное-имя-класса спецификация-доступа: private protected public Конструкция имя-класса в спецификации-базовых должна обозначатьранее описанный класс ($$R.9), который называется базовым поотношению к определяемому классу. Говорят, что класс являетсяпроизводным от своих базовых классов. Назначение конструкцииспецификация-доступа объясняется в $$R.11. К членам базового класса,если только они не переопределены в производном классе, можно обращатьсятак, как будто они являются членами производного класса. Говорят,что производный класс наследует члены базового класса. С помощьюоперации разрешения области видимости:: ($$R.5.1) к члену базовогокласса можно обращаться явно. Такое обращение возможно и в том случае,когда имя члена базового класса переопределено в производном классе.Производный класс сам может выступать как базовый при контроледоступа, см. $$R.11.2. Указатель на производный класс может неявнопреобразовываться в указатель на однозначно определенный и доступныйбазовый класс ($$R.4.6). Ссылка на производный класс может неявнопреобразовываться в ссылку на однозначно определенный и доступныйбазовый класс ($$R.4.7). Рассмотрим пример: class base { public: int a, b; }; class derived: public base { public: int b, c; }; void f() { derived d; d.a = 1; d.base::b = 2; d.b = 3; d.c = 4; base* bp = &d; // стандартное преобразование derived* в base* } Здесь присваиваются значения четырем членам d, а bp настраиваетсяна d. Класс называется прямым базовым, если он находится в списке-базовых,и косвенным базовым, если сам не являясь прямым базовым, он служитбазовым для одного из классов списка-базовых. Отметим, что в обозначении имя-класса:: имя конструкция, имя можетбыть именем члена косвенного базового класса. Такое обозначениепросто указывает класс, в котором следует начинать поиск этого имени.Приведем пример: class A { public: void f(); } class B: public A { }; class C: public B { public: void f(); } void C::f() { f(); // вызов f() из C A::f(); // вызов f() из A B::f(); // вызов f() из A } Здесь дважды вызывается A::f(), поскольку это единственная функция f()в классе B. Инициализация объектов, представляющих базовые классы, задаетсяв конструкторах, см. $$R.12.6.2.







Дата добавления: 2015-09-04; просмотров: 333. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия