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

DJVU-файл Г. Шилтд - Самоучитель C++ (DJVU), страница 10 Практика расчётов на ПЭВМ (2538): Книга - 3 семестрГ. Шилтд - Самоучитель C++ (DJVU): Практика расчётов на ПЭВМ - DJVU, страница 10 (2538) - СтудИзба2019-05-08СтудИзба

Описание файла

DJVU-файл из архива "Г. Шилтд - Самоучитель C++ (DJVU)", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 10 - страница

ризЬ( ' к ' ); Это вызовет сообщения об ощибках Гот(1=О; 1<5; 1++) сопС « "сиююл из стека з1: « з1. рор () « "~п"; йот(1=0; 1<бг 1++) сопл « "символ из стека з2: « з2.рор() « "~п"; теТитп О; Присвоение "имени" объекту, как показано в примере, является особенно полезным при отладке, когда важно выяснить, какой из объектов вызывает ошибку. Глава 2. Введение в классы 3. Здесь показан новый вариант разработанного ранее класса з(г[уре, в котором используется конструктор с параметром: [)ьпс1ие)е <1озСгеагв> ()1пс1ис)е <свтг[пе> ()ьпс1ис[е <сзтг[1(Ь> из[не пагпезрасс згд; с1азз згг[уре ( сЬаг *р; [пг 1сп; р иЬ)1с: зсгСуре (сЬаг арсе); -з~гдуре [); чоЫ звон [) 1 зсгеуре:: зггГуре [сЬаг *рог) 1еп = з" г1еп(рсг) г р = (с(заг *) жа11ос(1еп + 1) г 11[)р) сощ « "Ошибка выделения памяти~о" г ех[г [1); збгсру(р, рег); вгггуре:: -зГ гафуре () ( соив « "Освобождение памяти по адресу р1п"; йгее[р); тгоЫ зггсуре::звон[) соиб « р « "- длина: " « 1еги сонг « "~п"; (пс гваьп() ( вГгсуре з1 ("Это проверка" ), з2 ("Мне нравится С++" ) з1 ° зпои[)г з2.зЬои(); гесигп О; В этой версии класса з1г(уре строка получает свое начальное значение с помощью конструктора.

Глава 2, Введение в классы 2. Создайте класс 1 авд И, которому при его создании передается текущее системное время и дата в виде параметров конструктора. Этот класс должен включать в себя функцию-член, выводящую время и дату на экран. (Подсказка: Для нахождения и вывода на экран этих данных воспользуйтесь стандартной библиотечной функцией времени и даты.) 3.

Создайте класс Ьох, конструктору которого передаются три значения типа 4оиЫе, представляющие собой длины сторон параллелепипеда. Класс Ьох должен подсчитывать его объем и хранить результат также в виде значения типа (1оиЫе. Включите в класс функцию-член чо1(), которая будет выводить на экран объем любого объекта типа Ьох. 2.3. Введение в наследование Хотя более полно наследование ((п1зегйапсе) обсуждается в главе 7, предварительно с ним необходимо познакомиться уже сейчас.

Применительно к С++ наследование — это механизм, посредством которого один класс может наследовать свойства другого. Наследование позволяет строить иерархию классов, переходя от более общих к более специальным. Для начала необходимо определить два термина, обычно используемые при обсуждении наследования. Когда один класс наследуется другим, класс, который наследуется, называют базовым классом (Ъаае с/аа5).

Наследующий класс называют производным классом (г(епгег( с(аи). Обычно процесс наследования начинается с задания базового класса. Базовый класс определяет все те качества, которые будут общими для всех производных от него классов. В сущности, базовый класс представляет собой наиболее общее описание ряда характерных черт. Производный класс наследует эти общие черты и добавляет свойства, характерные только для него. Чтобы понять, как один класс может наследовать другой, давайте начнем с примера, который, несмотря на свою простоту, иллюстрирует несколько ключевых положений наследования. Для начала — объявление базового класса: // Определение базового класса с1авв В ( (пав з.; ри(з1ьо: чоЫ аее Ь ( пе и); (пГ де~ Ь (,'; Теперь объявим производный класс, наследующий этот базовый: // Определение производного класса С1ааа 1З: риЬ11с В ( (пг Самоучитель рпЫ1с: чоЫ ееч З (ьпКп) г 1пк гап1 (); Внимательно посмотрите на это объявление.

Обратите внимание, что после имени класса Р имеется двоеточие, за которым следует ключевое слово риЬИс и имя класса В. Для компилятора это указание на то, что класс Р будет наследовать все компоненты класса В. Само ключевое слово риЬИс информирует компилятор о том, что, поскольку класс В будет наследоваться, значит, все открытые элементы базового класса будут также открытыми элементами производного класса. Однако все закрытые элементы базового класса останутся закрытыми и к ним не будет прямого доступа из производного класса. Ниже приводится законченная программа, в которой используются классы ВиР: // Простой пример наследования ()1пс1пг(е <1озс "еаат> иа(пя пагпезрасе зсс(; // Определение базового класса с1азз В ( (пг рлЫ 1с: чоЫ зес 1 (ьпс г1); )п( деЕ 1() у // Определение производного класса с1азз В: рпЫ1с В ( 1пб 3) рнЫьс: чоЫ зес З (апсп); 1п'свел1 ( ); Задание значения 1 в базовом классе лоЫ в:: зес 1 (1пс п) = п; // Возврацение значения 1 в базовом классе 1вл В::цеК 1() геГигп 59 Глава 2.

Введение классы // Задание значения ) в производном классе уоЫ о:: вес з (тле и) 1 = и; Возвращение значения г базового класса и з — гцзоизводного Глг 0::тли1() производный класс может вызывать функции-члены базового класса гелц л 4 " 9ее ).(); Глк пагл ( ) и оЬ; оЬ.веТ г (1()); /! загрузка ( в базовый класс оЬ.вес З(4)~ 1/ загрузка з в гроизводный класс сонг с< оЬ.п~ц).(); // вывод числа 4() гев агл О; Обратите внимание на определение функции п)н!().

Отметьте, что функция ае1 )(), которая является членом базового класса В, а не производного Р, вызывается внутри класса Р без всякой связи с каким бы то ни было объектом. Это возможно потому, что открытые члены класса В становятся открытыми членами класса Р. В функции пш10 вместо прямого доступа к 1, необходимо вызывать функцию нее 1(), поскольку закрытые члены базового класса (в данном случае )) остаются закрытыми для нее и недоступными из любого производного класса.

Причина, по которой закрытые члены класса становятся недоступными для производных классов — поддержка инкапсуляции. Если бы закрытые члены класса становились открытыми просто посредством наследования этого класса, инкапсуляция была бы совершенно несостоятельна. Здесь показана основная форма наследования базового класса: с1авв имя производного класса; с д ига~ базового класса Здесь с д (спецификатор доступа) — это одно из следующих трех ключевых слов: рнЬИс (открытый), рг)уа1е (закрытый) или ргогесгед (защищенный). Самоучитель С++ 60 В данном случае для наследования класса используется именно риЫ)с.

Полное описание этих спецификаторов доступа будет дано позже. 1. Ниже приведена программа, которая определяет общий базовый класс 1гв11, описывающий некоторые характеристики фруктов. Этот класс наследуется двумя производными классами Арр!е и Огаще.

Эти классы содержат специальную информацию о конкретном фрукте (яблоке или апельсине). // Пример наследования классов Фвпс1ибе <1озггеатто 1мпс1ис1е <сз1г)пд> пз)па патпезрасе згс); апета уп )по, уез); епвтл со1ог 1гес), уе11оы, ттгееп, огапсе)) ттоЫ оттг [епитттуп х) сЬаг *с) ', = ( "гест", "уе11отч", "ттгееп", "огаптте" ) Родовой класс фруктов с1азз агате ( Б этом базовом классе все эттеыеттты открыты рттЬ11ст епилт уп апптта1т ептлл уп регеппта1; епслт уп Ггеет ептлтт уп ггоргса1т етштл со1ог с1г; сЬаг папе 140); Производный класс яблок с1азз Арр1ет рттЬ1тс тгттттг ( епптв уп соохтпот епыпт уп сгппсЬут епстл уп еастпут роЬ11с: ттоЫ зева (сЬаг *и, енота со1от с, епплт уп сх, ептлв уп стсЬу, епптл уп е); ттотс) зЬоыт); Производный класс апельсинов с1азз Огапдет рПЬ11с вгртк епвтв уп зтттсе; Глава Введевие классы епптп уп яопгт епптл уп еап1пдт рп)о11ст тто1й ее~о(с)таг *г., епвпт со1ог с, ептпп уг.

и', епптп утт яг, еп|лп утт е) чока я)тою( ); уоуб Арр1ет т яеГа (с)таг *и, епптп со1ог с, еплп уп с)с, епвтп уп сгсъу, епппт уп е) ( я~гору (лапте, и); апппа1 = по; регетлтка1 = уея; Пгее = уея; Ггоркса1 =- тто; с1г = с; соо)т1птт = с)тт сгппс)ту = сгс)тут еаг1птт = е; чо1й Огапдет тая~о(с(таг +и, еплп со1ог с, епвтп уп и', епптп уп яг, етплп уг, е) я~гору (пате, и); апппа1 = по; регепг1а1 = уея; Ггее = уев; ггоркса1 = уея; с1г = с; и'и1се = яопг = яг; еап1пд =- е; уоЫ Арр1е: . "я)тон() сепг « сепг « сепг сс сопл « соуп « сопл « сопл <с сопл « соил « сопл « патпе « " Яблоко — это: " « "ттп"" "Однолетнее растение: "; оШ (апптта1); "многолетнее растение: "; опт~ (регептт1а1); "дерево: "; оса(пгее)т "Тропическое: "; опТ (Ггор1са1); "Цвет: " « с (с1г) « "ттп" т "Легко приготавливается: "; оел (сооЫпд); "Хрустит на зубах: "; осб (сгттпс).у) ) "съедобное: "; оп~ (еаг1птт); "1п" Самоучитель чоЫогапое:: а)тон( ) сопс с< соус « соус « чоЫ опт(епстя уп х) [ 11 (х — по) сонг.

« "нет~в"; е1ве сопс « "да1п") 1пг. пи1п() лрр1е а1, а2; Огапое о1, о2; а1. вееа ("Краснаяпрелесть", гее[, по, уев, уев); а2. веса (" Джонатан", ген, уев, по, уев); о1. васо("Пуп", огапде, по, по, уев); о2,вело ("валенсия", огапде, уеа, уев, по); а1 японо; а2.автои(); о1.вйои(); о2.знои(); геспгп О; Как можно заметить, базовый класс вагш( определяет несколько свойств, характерных для фруктов любого типа, (Конечно, чтобы сократить пример и таким образом приспособить его для книги, класс (гц1( отчасти упрощен.) Например, все фрукты растут на однолетних или многолетних растениях. Все фрукты растут на деревьях или на растениях другого типа, таких как лоза или куст.

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