Студопедия

Главная страница Случайная страница

Разделы сайта

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






Class имя_потомка: режим_доступа имя_предка






{новые_элементы}

Если класс наследуется с режимом доступа public, то все открытые члены базового класса остаются открытыми и в производном. В случае private все открытые члены базового класса становятся в производном классе закрытыми. Если используется protected, то открытые и защищенные члены базового класса становятся защищенными членами производного.

Пример. Имеется базовый класс автомобиль, у которого есть свойства пробег и грузоподъемность и метод, который выводит на экран информацию о свойствах. Имеется два других класс – легковой и грузовой автомобили, который имеют свойства те же что и у базового, но каждый из классов имеет свои собственные свойства. У легкового автомобиля – это число пассажиров, а у грузового – число колес. Каждый из классов имеют также методы, показывающие информацию о свойствах.

class vehicle{// описание класса автомобиль

int loadlimit; // пробег

int range; // грузоподъемность

public: vehicle(int l, int r){ loadlimit =l; range =r; }

void showv(){//вывод информации о свойствах

cout< < endl< < " пробег " < < loadlimit < < endl < < " грузоподъемность " < < range;

}

};

class car: public vehicle{

// класс легковой автомобиль наследник класса автомобиль

int passengers; //число пассажиров

public: car(int p, int l, int r): vehicle(l, r){//конструктор

passengers=p;

}

void show(){// вывод информации о свойствах

showv(); // вызывается функция из родительского класса

cout< < " пассажироемкость " < < passengers< < endl;

}

};

class truck: public vehicle{

// класс грузовой автомобиль наследник класса автомобиль

int num_wheels; //количество колес

public: truck(int w, int l, int r): vehicle(l, r){//конструктор

num_wheels =w;

}

void show(){// вывод информации о свойствах

showv(); // вызывается функция из родительского класса

cout< < " число колес " < < num_wheels < < endl;

}

};

void main(){

car c(5, 500, 4);

truck t(12, 30000, 1200);

cout< < " легковушка";

c.show(); //вывод информации о легковом автомобиле

cout< < " грузовик";

t.show(); //вывод информации о грузовом автомобиле

}

При вызове конструктора сначала вызывается конструктор базового класса, а потом выполняется конструктор производного класса. Деструкторы выполняются в обратном порядке. Если необходимо передать параметры из конструктора базового класса в конструктор класса потомка, то используется конструкция:

констр_произв_класса(пар-ры): констр_базового_класса(пар-ры){

Тело конструктора

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.