Программирование >>  Расширенная версия языка c++ 

1 ... 73 74 75 [ 76 ] 77 78 79 ... 227


234 Самоучитель C++

void ShowvO * . . - .

cout Число колес num wheels \п; cout Грузопояъемность range \n;

enum moto as, electric, diesel};

clas ized: public vehicle {

enum motor public:

motorized (enummoto m, int w, int r) le (w, r)

mtr = m;

void showmO { i .

cout Мотор: ;

switch (mtr) { \\

cas s: cou На газе\п ;

break;

case electric: cout Ha электроэнергии\п ;

break;

case diesel: cout Дизельный\n ;

break;

> .. .

clas use: public vehicle {

int passengers; public:

road use (int p, int w, in r) le (w, r)

passengers - p; ) ,

void

cout passengers

>;

enum steering vier, rack pinion, manual);

class car: public motorized, public road use { enum steering iin;

public:

car:(enuia steering s, enum motor m, int w, int r, int p) :



int maim {

ca wer, gas, 4, 500, 5); с.show(); return 0;

Проверка усвоения материала в целом

В этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.

1. При компиляции программы из вопроса 6 только что приведенных упражнений по проверке усвоения материала главы 7, вы могли увидеть предупреждающее сообщение (или, возможно, сообщение об ошибке), связанное с использованием инструкции switch внутри классов саг и motorised. Почему?

2. Как вы знаете из предыдущей главы, большинство операторов, перегруженных в базовом классе, доступны для использования в производном. Для какого или для каких операторов это не так? Объясните, почему.

3. Следующей представлена переработанная версия класса coord из предыдущей главы. Теперь он используется в качестве базового для класса

road use(p, terized (m, icle (w, r)

strng = s; r. : .

void ShowO { :

showv(}; showrO; showmO; -

cout Управление: ; - ...

switch (strng) (

case power: cout Силовой привод\п ;

break;

case rack pinion: cout Механический привод\п ; break;

case manual: cou< Ручной привод\n ;

break; - -



return temp;

Перегрузка оператора = относительно класса coord

coord ob2)

quad, в котором помимо координат хранится номе ранта. к которому принадлежит точка с этими координатами. Запустите программу и попытайтесь понять полученный результат.

/* Перегрузите операторы +, - и = относительно класса coord. Затем используйте класс coord в качестве базового для класса ad */ finclude <iostream>

using namespace std; . ....

class coord { , . .

public:

int x, у; значения координат

coord О { X = О; y= О; }

coord(int i, int j) { x = i; у = j; }

void get xy(int fii, int fij ) { i = x; j = y; }

coord operator+ (coordob2) ;

coord operator- (coord ob2) ;

coord operator=(coord ob2);

Перегрузка оператора + для класса coord V-

coord coord: ;operator+(coord ob2)

coord temp;

cou Использование функции operator+ 0 \n ;

temp . X = x + ob2 . x ; teiTip.y = у + оЬ2.у;

return temp;

Перегрузка атора - относительно класса coord coord coord: : operator- (coordob2)

coord temp;

cou мльзование функции operator- ()\n ;

x - = у -



1 ... 73 74 75 [ 76 ] 77 78 79 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика