![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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(); //вывод информации о грузовом автомобиле } При вызове конструктора сначала вызывается конструктор базового класса, а потом выполняется конструктор производного класса. Деструкторы выполняются в обратном порядке. Если необходимо передать параметры из конструктора базового класса в конструктор класса потомка, то используется конструкция: констр_произв_класса(пар-ры): констр_базового_класса(пар-ры){ Тело конструктора }
|