Тот факт, что класс
Обратите внимание на то, как наследуется класс
class имя_производного_класса : доступ имя_базового_класса
{
тело нового класса
}
Здесь элемент
Рассмотрим программу, которая использует механизм наследования для создания двух подклассов класса
// Демонстрация наследования.
#include
using namespace std;
// Определяем базовый класс транспортных средств.
class road_vehicle {
int wheels;
int passengers;
public:
void set_wheels(int num) { wheels = num; }
int get_wheels() { return wheels; }
void set_pass(int num) { passengers = num; }
int get_pass() { return passengers; }
};
// Определяем класс грузовиков.
class truck : public road_vehicle {
int cargo;
public:
void set_cargo(int size) { cargo = size; }
int get_cargo() { return cargo; }
void show();
};
enum type {car, van, wagon};
// Определяем класс автомобилей.
class automobile : public road_vehicle {
enum type car_type;
public:
void set_type(type t) { car_type = t; }
enum type get_type() { return car_type; }
void show();
};
void truck::show()
{
cout << "колес: " << get_wheels() << "\n";
cout << "пассажиров: " << get_pass() << "\n";
cout << "грузовместимость в кубических футах: " << cargo << "\n";
}
void automobile::show()
{
cout << "колес: " << get_wheels() << "\n";
cout << "пассажиров: " << get_pass() << "\n";
cout << "тип: ";
switch(get_type()) {
case van: cout << "автофургон\n";
break;
case car: cout << "легковой\n";
break;
case wagon: cout << "фура\n";
}
}
int main()
{
truck t1, t2;
automobile c;
t1.set_wheels(18);
t1.set_pass(2);
t1.set_cargo(3200);
t2.set_wheels(6);
t2.set_pass(3);
t2.set_cargo(1200);
t1.show();
cout << "\n";
t2.show();
cout << "\n";
с.set_wheels(4);
с.set_pass(6);
с.set_type(van);
с.show();
return 0;
}
При выполнении эта программа генерирует такие результаты.
колес: 18
пассажиров: 2
грузовместимость в кубических футах: 3200
колес: 6
пассажиров: 3
грузовместимость в кубических футах: 1200
колес: 4
пассажиров: 6
тип: автофургон