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

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

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

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

nurns [ i ] ;return temp;1int array: :operator== (array ob2)_565Самоучитель C++566{int i ;for(i=0; i<10; i++) if(nums[i] != ob2.nums[i]) return 0,return 1;1int main!)i\array ol, o2, o3;int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };ol.set (i);o2.set (i);o3 - ol + o2;o3.show();o3 = ol — o3;o3. show() ;if(ol==o2) cout « "ol равно o2\n";else cout « "ol не равно о2\п";if(ol==оЗ} cout « "ol равно o3\n";else cout « "ol не равно оЗ\п";.return 0;5.

^include <iostream>using namespace std;class array {int nums[10];public:array () ;void set(int n[10]);void show();friend array operator-*-(array obi, array ob2);friend array operator-(array obi, array ob2);friend int operator==(array obi, array ob2);};array: :array {)int i;ПриложениеВ.Ответынавопросыирешенияупражнений_f o r ( i = 0; i < 10; i++) n u m s f i ] = 0;1void array : :set (int *n)tint i;f o r ( i = 0; i < 10; i++) nums[i] = n [ i ] ;Ivoid array: :show(){int i;f o r d = 0; i < 10; i++) cout « nums[i] « ' ';cout « "\n";Jarray operator+ (array obi, array ob2){int i;array temp;for(i=0; i<10; i++) temp.nums[i] = obl.nums[i] + ob2.nums[i];return temp;}array operator- (array obi, array ob2){int i;array temp;for(i=0; i<10; i++) temp.

nums [i] = obl.nums[i] — ob2 . nums [ i ] ;return temp;1int operator== (array obi, array ob2){int i;f o r ( i = 0 ; i<10; i++) if (obi .nums [i]return 1;}int main{){array ol, o2, o3;!= o b 2 . n u m s [ i ] J return 0;567568____int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };ol.set (i) ;o2.set (i) ;o3 - ol + o2;o3 . show ( } ;03 - ol - o3;o3 . show ( ) ;if (ol==o2) cout « "ol равно o2\n";else cout « "ol не равно о2\п";if{ol==o3) cout « "ol равно o3\n";else cout « "ol не равно оЗ\п";return 0;6. ttinclude <iostream>using namespace std;class array {int nums [10] ;public :array ( ) ;void set (int n[10]);void show() ;array operator++ () ;friend array operator — (array Sob) ;};array: : array (){int i;for(i = 0; i < 10; i++) nums[i] = 0void array: :set (int *n){int i;for(i - 0; i < 10; i++) nums[i] = n[i]}void array :: show ()fint i;СамоучительПриложениеВ,Ответынадопросыирешенияупражнений_569for (i = 0; i < 10; i++)cout « nums[i] « ' ';cout « "\n";// Перегрузка унарного оператора с использованием функции-членаarray array: :operator++ f)int i;for{i=0; i<10; i++) nums[i]++;return *this;// Перегрузка унарного оператора// с использоеанием дружественной функцииarray operator — (array &ob){int i;for{i=0; i<10; i+-f) ob.nums[i] — ;return ob;}int main(){array ol, o2, o3;int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };ol.set (i) ;o2.set(i) ;o3 = 4+o 1 ;o3.show() ;o3 = — ol;o3.

show{) ;return 0;7. Нет. Оператор присваивания может перегружаться только с использованиемфункции -члена.Самоучитель С++_570Упражнения7-11. Правильными являются инструкции А и С.2. Когда открытые члены базового класса наследуются как открытые, они становятся открытыми членами производного класса. Когда открытые членыбазового класса наследуются как закрытые, они становятся закрытыми членами производного класса.7.21. Когда защищенные члены базового класса наследуются как открытые, онистановятся защищенными членами производного класса. Когда защищенныечлены базового класса наследуются как закрытые, они становятся закрытымичленами производного класса.2. Категория защищенности позволяет сохранить закрытость определенныхчленов базового класса, оставляя, тем не менее, возможность доступа к нимиз производного класса.3. Нет.7.31.

^include <iostream>^include <cstring>using namespace std;class raybase {char str[aO];public:mybase(char *s) { strcpy(str, s)char *get() { return str; }class myderived: public mybase {int len;public:myderived{char *s}: mybase(s) {len = strlen(s);int getlenf) { return len; }void show() { cout « get() « '\n'; }};Приложение В. Ответы на вопросы и решения упражнений _int main (){myderived ob { "привет ");ob . show ( ) ;cout « ob.getlenf) « '\n';return 0;2. #include <iostream>:sing namespace st// Базовый класс для аь-о.мобилей разных типовclass vehicle {int num_wheels;int range ;public:vehicle {int w, int r)num_wheels = w; range = r;}void showv ( ){cout « "Число колес: " « num wheels « '\n'-—cout « "Грузоподъемность: " « range « ' \ n 'class car: public vehicle {int passengers;public:car (int p, int w, int r) : vehicle (w, r){passengers = p;}void show ( )(showv { ) ;cout « "Пассажироемкость : " « passengers « ' \n 'class truck: public vehicle (int loadlimit;public:truck(int 1, int w, int r) : vehicle (w, r)571572Самоучитель C++{loadlimit = 1;void show { )(showv ( ) ;cout « "Пробег: " « loadlimit « ' \n ' ;int main (){car c(5, 4, 500) ;truck t (30000, 12, 1200)cout « "Легковушка: \n";c.show() ;cout « "ХпГрузовик: \n";t .

show ( ) ;return 0;7.41. РаботаРаботаРаботаРаботаРаботаРаботаконструктора Аконструктора Вконструктора Сдеструктора Сдеструктора Вдеструктора А2. ^include <io5tream>using namespace std;class A {int i ;public:A (int a) { i - a; }class В {int j ;public:B{int a) { j = a; }Приложение В. Ответы на вопросы и решения упражнений573class С: public A, public В {int k;public:C{int с, int b, int a ) : A ( a ) , B ( b ) {k = c;7.52. Виртуальный базовый класс нужен тогда, когда производный класс наследуетдва (или более) класса, каждый из которых сам унаследовал один и тот жебазовый класс.

Без виртуального базового класса в последнем производномклассе существовало бы две (или более) копии общего базового класса. Однако благодаря тому, что исходный базовый класс делается виртуальным, впоследнем производном классе представлена только одна копия базового.Проверка усвоения материала главы 71. ttinclude <iostream>using namespace std;class building {protected;int floors;int rooms;double footage;class house: public building {int bedrooms;int bathrooms;public:house {int f, int r, double ft, int br, int bth)floors = f; rooms = r; footage = f t ;bedrooms = br; bathrooms = bth;}void show ( )cout «cout «cout «cout «cout «{"этажей:"комнат:"метраж:"спален:"ванн: "" « floors « ' \ n ' ;" « rooms « ' \ n ' ;" « footage « ' \ n ' ;" « bedrooms « ' \n ' ;« bathrooms « ' \ n ' ;{574________СамоучительC++class office: public building {int phones;int extinguishers;public :office (int f, int r, double ft, int p, int ext) (floors = f; rooms = r; footage = ft;phones = p; extinguishers = ext;}void showO (cout « "этажей: " « floors « '\n';cout « "комнат: " « rooms « '\n';cout « "метраж: " « footage « ' \n' ;cout « "телефонов: " « phones « '\n';cout «: "огнетушителей: " « extinguishers « '\n';int rnainOIhouse h_ob(2, 12, 5000, 6, 4);office o_ob(4, 25, 12000, 30, 8) ;cout « "Жилой дом: \п";h_ob .

show ( ) ;cout « "ХпОфис: \n";o_ob.show() ;return 0;2. Если базовый класс наследуется как открытый, открытые члены базовогокласса становятся открытыми членами производного класса, а закрытые члены базового класса остаются закрытыми. Если базовый класс наследуетсякак закрытый, все члены базового класса становятся закрытыми членамипроизводного.3. Члены, объявленные как защищенные (protected), являются закрытыми членами базового класса, но могут наследоваться (и к ним можно иметь доступ)любым производным классом. При наследовании со спецификатором доступа protected все открытые и защищенные члены базового класса становятсязащищенными членами производного класса.4.

Конструкторы вызываются в порядке наследования. Деструкторы — в обратном порядке.5. ^include <iostream>using namespace std;Приложение В. Ответь! на вопросы и решения упражнений__575class planet (protected:double distance; // расстояние в милях от Солнцаint revolve;// полный оборот в дняхpublic:planet (double d, int r) { distance = d; revolve = r; }class earth: public planet (double circumference; // окружность орбитыpublic :earth (double d, int r) : planet (d, r) {circumference = 2 * distance * 3.1416;}void show() (cout « "Расстояние от Солнца: " « distance « '\n';cout « "Полный оборот в днях : " « revolve « ' \n ' ;cout « "Окружность орбиты: " « circumference « '\n'int main(){earth ob (93000000, 365);ob .

show ( ) ;return 0;6. Для того чтобы программа стала верной, классы motorized и road_use должнынаследовать базовый класс vehicle как виртуальный.Проверка усвоения материала в целом1. Некоторые компиляторы не допускают использования инструкции switch вовстраиваемых функциях. Такие функции автоматически трактуются компилятором как "обычные" функции.2.

Оператор присваивания является единственным оператором, который не наследуется. Причину этого понять легко. Поскольку в производном классепоявятся члены, которых нет в базовом, то при перегрузке оператора = относительно базового класса в базовом классе ничего не будет известно о членах, появившихся в производном классе, и поэтому невозможно правильнокопировать эти новые члены.5/6Самоучитель_ГЛАВА 8Повторение пройденного1. ^include <iostrearn>using namespace std;class airship {,protected:int passegers;double cargo;•class airplane: public airship {char engine; // p для винтового, j для реактивногоdouble range;public:airplane (int p, double c, char e, double r}{passegers = p;cargo = c;engine = e;range = r;}void show ( ) ;11class balloon: public airship {char gas; // h для водорода, е для гелияdouble altitude;public:-balloon (int p, double c, char g, double a)ipassegers = p;cargo = c;gas = g;altitude = a;}void show f ) ;void airplane: : show (){cout « "Пассажировместимость : " « passegers « '\n';cout « "Грузоподъемность : " « cargo « ' \n' ;cout « "Двигатель: ";C++Приложение В, Ответы на вопросы и решения упражненийif (engine=='p' ) cout « "Винтовой\п";else cout « "Реактивный\п";cout « "Дальность: " « range « '\n';void balloon: : show (){cout « "Пассажире вместимость : " « passegers « '\n'cout « "Грузоподъемность: " « cargo « '\n';cout « "Наполнитель : " ;if(gas=='hM cout « "Водород\п";else cout « "Гелий\п";cout « "Потолок: " « altitude « '\n';}int.

ma in (){balloon Ь (2, 500.0, 'h1, 12000.0);airplane b727 (100, 40000.0, 'j', 40000.0);b. s h o w ( ) ;cout « ' \ n ' ;b727.show() ;return 0;2. Спецификатор доступа protected оставляет члены базового класса закрытыми,но при этом позволяет получить к ним доступ из любого производного класса.3. Выводимый на экран результат работы программы иллюстрирует очередностьвызова конструкторов и деструкторов.РаботаРаботаРаботаРаботаРаботаРаботаконструктора Аконструктора Вконструктора Сдеструктора Сдеструктора Вдеструктора А4. Порядок вызова конструкторов — ABC, порядок вызова деструкторов — СВА.5. #include <iostream>using namespace std;class base {int i, j;public:base (int к, int y) {i = x; j = y; }575_-^_____СамоучительC++void showij (} { cout « i « ' ' « j « '\n'; }class derived: public base {int k;public :derived(int a, int b, int c) : base(b, c) (k = a;}void showO { cout « k « ' '; showij {); }hint main{){derived ob(l, 2, 3) ;ob.

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

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

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

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