Главная » Просмотр файлов » Г. Шилтд - Самоучитель C++ (PDF)

Г. Шилтд - Самоучитель C++ (PDF) (1114887), страница 34

Файл №1114887 Г. Шилтд - Самоучитель C++ (PDF) (Г. Шилтд - Самоучитель C++ (PDF)) 34 страницаГ. Шилтд - Самоучитель C++ (PDF) (1114887) страница 342019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

Он долженпередавать классу planet расстояние и число оборотов,а также рассчитывать окружность орбиты {Подсказка:окружность = 2г * 3.1416.)V/* Создайте функцию show() для вывода информации на экран */int main ()гearth оЬОЗОООООО, 365);ob.show( ) ;return 0;6.

Исправьте следующую программу:/* Вариация иерархии классов из примера с классом vehicle. Впрограмме имеется ошибка. Найдите ее. Подсказка: попытайтесьпровести компиляции и изучите сообщения об ошибках */^include <iostream>using namespace std;// Базовый класс для автомобилей разных типовClass vehicle {int num_wheels;int range;public:vehicle(int w, int r}num wheels = w; range = r;234________Самоучитель C++void showvO{cout « "Число колес" « nuin_wheels « ' \ n ' ;rcout « "Грузоподъемность" « range « \ n ' ;enum motor {gas, electric, diesel};class motorized: public vehicle {enum motor mtr;public:motorized {enum motor m, int w, int r) : vehicle (w, r){mtr = m;}void showmO {cout « "Мотор:";switch (mtr) {case gas: cout « "На газе\п";break;case electric: cout « "На электроэнергии\п";break;case diesel: cout « "ДизельныйХп";break;class road_use: public vehicle {int passengers;public:road__use (int p, int w, int r} : vehicle(w, r)tpassengers - p;1void showr()(cout « "Пассажироемкость" « passengers « '\n';enum steering {power, rack_pinion, manual};class car: public motorized, public road_use {enum steering strng;public:car(enum steering s, enum motor m, int w, int r, int p}:Глава 7, Наследование235road_use(p, w, r ) , motorized(m, w, r), vehicle(w, r){strng = s;void show() {s h o w v f ) ; showr(); showm();cout « "Управление:";switch(strng) (case power: cout « "Силовой привод\п";break;case rack_pinion: cout « "Механический привод\п";break;case manual: cout « "Ручной приводХп";break;I};int main()car c(power, gas,4,500,5);с.show();return 0;}Проверка усвоенияматериала в целомВ этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.1.

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

Почему?2. Как вы знаете из предыдущей главы, большинство операторов, перегруженных в базовом классе, доступны для использования в производном.Для какого или для каких операторов это не так? Объясните, почему.3. Следующей представлена переработанная версия класса coord из предыдущей главы. Теперь он используется в качестве базового для класса236__Самоучитель C++quad, в котором помимо координат хранится номер квадранта, к которому принадлежит точка с этими координатами.

Запустите программу ипопытайтесь понять полученный результат./* Перегрузите операторы +, — и = относительно класса coord. Затемиспользуйте класс coord в качестве базового для класса quad */^include <iostream>using namespace std;class coord {public:int x, у; // значения координатcoord {) { x = 0; у- 0; }coord { int i, int j) { x = i; у = j; }void get_xy(int fii, int fij) { i = x; j = y; }coord operator+ (coord ob2);coord operator- {coord ob2);coord operator=( coord ob2};// Перегрузка оператора + для класса coordcoord coord: :operator+ (coord ob2){coord temp;cout « "Использование функции operator+ {) \n";temp . x = x + ob2 . x ;temp. у = у + ob2.y;return temp;// Перегрузка оператора — относительно класса coordcoord coord: : operator- (coord ob2){coord temp;cout « "Использование функции operator- () \n";temp.x = x — ob2.x;temp.

у = у — ob2.y;return temp;// Перегрузка оператора = относительно класса coordcoord coord: :operator= (coord ob2)Глава 7. Наследование237{cout « "Использование функции operator^ ()\п";х = оЬ2.х;у = оЬ2 . у;1return *this; // возвращение присваиваемого объектаclass quad: public coord {int quadrant;public:quad() { x = 0; у = 0; quadrant =0; }quad(int x; int y): coord(x, y)if(x>=0 && y>=0) quadrant = 1;else if(x<0 && y>=0) quadrant = 2;else if(x<0 && y<0} quadrant = 3;else quadrant = 4;void showq()cout « "Точка в квадранте: " « quadrant « '\n';quad operator=(coord ob2);•quad quad::operator=(coord ob2)cout « "Использование функции operator=()\n";x = ob2,x;у = ob2.у;if(x>=0 && y>=0} quadrant = 1;else if(x<0 && y>=0) quadrant = 2;else if(x<0 Sfi y<0) quadrant = 3;else quadrant = 4;return *this;int main()quad ol(10, 10), o2(15, 3), o3;int x, y;o3 = ol 4 o2; // сложение двух объектов// вызов функции operator-f()o3.get_xy(x, y);o3.showq();cout « "(ol + o2) X: " « x « ", Y: " « у « "\n";238_СамоучительоЗ = ol — о2; // вычитание двух объектовo3.get_xy(x, у ) ;оЗ.showq();cout « " ( o l - о2) X: " « х « ", Y: " « у « "\n";оЗ = ol; // присваивание объектовоЗ.get_xy(х, у);o3.Showq();cout « "(оЗ = ol) X: " « х « ", Y: " « у « "\n";return 0;4.

Переработайте программу из вопроса 3 так, чтобы в ней использовалисьдружественные оператор-функции.Глава 8Введение в системуввода/вывода C++Начиная с первой главы этой книги, создавая свои программы, мы пользовались стилем ввода/вывода C++. Теперь настало время изучить его болееподробно. Как и в языке С, в C++ имеется развитая, гибкая и достаточнополная система ввода/вывода.

Важно понимать, что в C++ по-прежнемуподдерживается вся система ввода/вывода С. Кроме этого в C++ включендополнительный набор объектно-ориентированных подпрограмм ввода/вывода. Главным преимуществом системы ввода/вывода C++ являетсято, что она может перегружаться для создаваемых вами классов. Это отличиепозволяет легко встраивать в систему ввода/вывода C++ новые создаваемыевами типы данных.Как и в С, в системе объектно-ориентированного ввода/вывода C++ имеется незначительная разница между консольным и файловым вводом/выводом.На самом деле, консольный и файловый ввод/вывод — это просто разныйвзгляд на один и тот же механизм.

В этой главе в примерах используетсяввод/вывод на консоль (в данном случае на экран монитора), но представленная информация вполне применима и для ввода/вывода в файл(ввод/вывод в файл более детально исследуется в главе 9).К моменту написания этой книги использовались две версии библиотекиввода/вывода C++: старая, основанная на изначальной спецификации C++,и новая, определенная единым международным стандартом Standard C++.С точки зрения программиста для решения подавляющего большинства задач обе эти библиотеки идентичны. Так происходит потому, что новая библиотека ввода/вывода — это по существу просто обновленная и усовершенствованная версия старой библиотеки.

Фактически, почти все отличиядвух версий скрыты от вас, поскольку касаются не способа использованиябиблиотек, а способа их реализации. Для программиста главное отличие заключается в том, что новая библиотека ввода/вывода C++ имеет несколькодополнительных возможностей и определяет несколько новых типов данных.Таким образом, новая библиотека ввода/вывода — это по существу простонесколько улучшенная старая. Почти все уже написанные для старой библиотеки программы при использовании новой будут компилироваться без какихбы то ни было существенных изменений.

Поскольку прежняя библиотекаввода/вывода ныне считается устаревшей, данная книга описывает только240Самоучитель C++новую библиотеку, как это определено стандартом Standard C++. Тем неменее, большая часть информации вполне применима и к старой библиотеке ввода/вывода.Эта глава охватывает несколько аспектов системы ввода/вывода C++, включая форматируемый ввод/вывод, манипуляторы ввода/вывода и созданиепользовательских функций ввода/вывода.

Как вы увидите в дальнейшем, всистеме ввода/вывода C++ имеется множество черт, характерных для системы ввода/вывода С.Повторение пройденногоПеред тем как продолжить, необходимо правильно ответить на следующиевопросы и сделать упражнения.1. Создайте иерархию классов для хранения информации о летательных аппаратах. Начните с общего базового класса airship, предназначенного дляхранения количества перевозимых пассажиров и количества перевозимого груза (в фунтах). Затем создайте два производных от airship классаairplane и balloon.

Характеристики

Тип файла
PDF-файл
Размер
65,55 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее