|
Программирование >> Расширенная версия языка c++
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 - = у -
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |