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

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

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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Индекс гингивита (PMA) (Schour, Massler, 1948) Для оценки тяжести гингивита (а в последующем и ре­гистрации динамики процесса) используют папиллярно-маргинально-альвеолярный индекс (РМА)...

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

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