Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » 30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003

30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003 (Герберт Шилдт - Самоучитель C++), страница 10

DJVU-файл 30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003 (Герберт Шилдт - Самоучитель C++), страница 10 Информатика (3310): Книга - 2 семестр30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003 (Герберт Шилдт - Самоучитель C++) - DJVU, страница 10 (3310) - СтудИзба2020-04-26СтудИзба

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

Файл "30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003" внутри архива находится в папке "язык СИ учебная литература". DJVU-файл из архива "Герберт Шилдт - Самоучитель C++", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

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

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

Само ключевое слово рвЬВс информирует компилятор о том, что, поскольку класс В будет наследоваться, значит, все открытые элементы базового класса будут также открытыми элементами производного класса. Однако все закрытые элементы базового класса останутся закрытыми и к ним не будет прямого доступа из производного класса. Ниже приводится законченная программа, в которой используются классы ВиР: // Простой пример наследования ()1пс1ибе <1овт пеево пятпд патеврасе ввбЗ // Определение базового класса с1аяв В ( 1пс з.з рпЬ11сз чо1б яеС з(1пс п)з 1пс деС з.()З ); // Определение производного класса с1аяв Гм рагс В ( 1пс 3з разо: чо15 яес з (1пс и) з 1пС щп1() з // задание значения 1 в базовом классе чозб Вз:вее 1(1пп и] ( = пз // Возвращение значения з в базовом классе гпе Вззяее з() ( гесптп з.з ! Глава 2.

Введение в классы 59 // Задание значения ! в производном классе чо1б 0:гзее 3 )1пп п) ) = пг ) Возвращение значения 1 базового класса и ! — производного 1пе 0::щц1)) ) // производный класс может О вызывать функции-члены базового класса гегцггг ! * деТ г))г гпе щаьгг) ) ) Р оЬ' оЬ.зес 1)10); // загрузка 1 в базовый класс оЬ.зее 3(4)г // загрузка ! в производный класс соцп « оЬ.щц1[)г // вывод числа 40 геСцгп Ог Обратите внимание на определение функции ща!(). Отметьте, что функция йе! !О, которая является членом базового класса В, а не производного 1), вызывается внутри класса Р без всякой связи с каким бы то ни было объектом.

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

Если бы закрытые члены класса становились открытыми просто посредством наследования этого класса, инкапсуляция была бы совершенно несостоятельна. Здесь показана основная форма наследования базового класса: с1азз иия лроиззодиого классаг с д иия базового класса 1 Здесь с д (спецификатор доступа) — это одно из следующих трех ключевых слов: риЫ!с (открытый), рпта1е (закрытый) или рго1ес1ей (защищенный).

Самоучитель С+ч- 60 В данном случае для наследования класса используется именно рвЫ!с, Пол- ное описание этих спецификаторов доступа будет дано позже. 1. Ниже приведена программа, которая определяет общий базовый класс вагш(, описывающий некоторые характеристики фруктов. Этот класс наследуется двумя производными классами Арр]е и Огавяе. Эти классы содержат специальную информацию о конкретном фрукте (яблоке или апельсине).

// Пример наследования классов а з пс 1 псе <1 о я г геат> ()1пс1пс(е <сяг г1пд> пз1пс пазпеярасе ясс(г еппи уп (гго, уея)г еппгп со1от (тес(, уе11он, отееп, отапде]г чоад опп(епнгв уп х) спят *с( ] = ( "тес)", "уе11ои", "свеев", "отапде")г // родовой класс фруктов с1аяя г?н1т ( // В этом базовом классе все элементы открыты рнЬ11с: еппгв уп аппна1г еппдг уп ретеппьа1г еппгп уп Егеег еппгп уп сторьса1з еппгв со1от с1тг сЬат валге(40)з // Производный класс яблок с1аяя Арр1ег рпЬ11с Гспье ( епнвг уп соокфпдг етлп уп стппсЬуг епнвг уп еап1пдг рнЬ11сг чо1б яепа(сЬат *и, еппгв со1от с, ешь уп сх, еппгп уп стопу, епнгв уп е)г чо1с( яион(); ): О Производный класс апельсинов с1азя Отапдег рпЬ11с Ггпье ( епогв угг зпз.сег Глава 2.

Введение в классы чо1б Арр1е::веса(сЬаг *и, епяп со1ог с, ела уп сК, еппт уп сгсЬу, епоп уп е) ( зсгсру(пате, и); апппа1 = по) регеппуа1 = уез; сгее = уез; Сгор1са1 = по; с1г = с; сооКТпд = сК) сгппсЬу = сгсЬу) еагупд = е; чо16 Огапде::зесо(сЬаг *и, епип со1ог с, еп~лп уп 3, еппп уп зг, епшп уп е) зсгсру(паке, и)) аппиа1 = по; регепп1а1 = уез) сгее = уез; Сгоруса1 = уез; с1г = с; двусе = 3; зонг = 5Г) еаг1пд = е; ) чо1б Арр1е:: зЬон() пате « " яблоко — это: " « "1п") "Однолетнее растение".

"; опз(апппа1)) "Многолетнее растение: "; опс(регепп1а1); "Дерево: "; опс(ггее); "Тропическое: "," опс(сгоруса1); "Цвет: " « с[с1г] « "'~п") "Легко приготавливается: "; опт(сооКТпд); "Хрустит на зубах: "; опс(сгппсЬу); "Съедобное: "; опс(еаг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яе попс « "паап"1 ) 1пг ва1п() ( Лрр1е а1, а21 Огапде о1, о21 а1.веса("Красная прелесть", геб, по, уея, уея) а2.веса("Джонатан", ген, уея, по, уея) 1 о1.яего("Пуп", огапде, по, тю, уея) 1 о2.яесо("Валенсия", огапде, уея, уея, по) 1 а1.я)таи()1 а2 .

яЬои () 1 о1. я)тон() 1 о2. яЬои () 1 геспгп 01 Как можно заметить, базовый класс гги[( определяет несколько свойств, характерных для фруктов любого типа. (Конечно, чтобы сократить пример и таким образом приспособить его для книги, класс йтий отчасти упрощен.) Например, все фрукты растут на однолетних или многолетних растениях. Все фрукты растут на деревьях или на растениях другого типа, таких как лоза или куст. Все фрукты имеют цвет и название.

Затем такой базовый класс наследуется классами Арр[е и Огавае. Каждый из этих классов обеспечивает обьект информацией, характерной для фруктов конкретного типа. Этот пример иллюстрирует основной смысл наследования. Создаваемый здесь базовый класс определяет основные черты, связанные со всеми фруктами бЗ Глава 2. Введение в классы Производным классам предоставляется возможность обеспечения тех характеристик, которые являются характерными в каждом конкретном случае. Эта программа раскрывает другой важный аспект наследования: производные классы не "владеют" базовым классом безраздельно. Он может наследоваться любым количеством классов.

1. Дан следующий базовый класс: с1авв агеа с1 рпЬ11с: сопЬ1е Ье1дЬС; оопЬ1е игЖЬ; ); создайте два производных класса гесгавя!е и !вовсе!еа, которые наследуют базовый класс агеа с1. Каждый класс должен включать в себя функцию агеаО, которая возвращает площадь соответственно прямоугольника (тес)апд)е) и равнобедренного треугольника ()вовсе!ез), Для инициализации переменных 1)е)я))1 и «чй)) (высота и длина основания, соответственно) используйте конструктор с параметрами. 2.4. Указатели на объекты До сих пор вы осуществляли доступ к членам объекта с помощью оператора точка (.).

Если вы работаете с объектом, то это правильно. Однако лоступ к члену объекта можно получить также и через указатель на этот объект. В этом случае обычно применяется оператор стрелка (->). (Аналогичным способом оператор стрелка (->) используется при работе с указателем на структуру.) Вы объявляете указатель на объект точно так же, как и указатель на переменную любого другого типа. Задайте имя класса этого объекта, а затем имя переменной со звездочкой перед ним. Для получения адреса объекта перед ним необходим оператор й, точно так же, как это делается для получения адреса переменной другого типа.

Как и для любого другого указателя, если вы инкрементируете указатель на объект, он будет указывать на следующий объект такого же типа. ,ф 1. Простой пример использования указателя на объект: ))1пс1ис)е <1овегеап> пвъпд папеврасе всп; Самоучитель С "+ б4 с1азз пус1азз ( 1пс а; рпЬ11с: пус1азз(ьпс х)> // конструктор ъпе оеп(); пус1азз::пус1азз(1пе х) ( а=х ьпе пус1азз::дев О ( гесптп а; ) 1пс па1п() ( пус1азз оЬ(120); // создание объекта пус1азз *р; // создание указателя на объект р = аоЬ; // передача адреса оЬ в р сопс « "Значение, получаемое через объект:" « оЬ.дев() попс « попс « "Значение, получаемое через указатель:" « р->дев(); геепгп 0; Отметьте, как объявление пус1азз *р; создает указатель на объект класса в)устава. Это важно для понимания следующего положения: создание указателя на объект не создает объекта„оно создает только указатель на него.

Для передачи адреса объекта оЬ в переменную р, использовалась инструкция: р = аоЬ; И последнее, в программе показано, как можно получить доступ к членам объекта с помощью указателя на этот объект. Мы вернемся к обсуждению указателей на объекты в главе 4, когда у вас уже будет более полное представление о С++. бб Глава 2. Введение в классы 2.5. Классы, структуры и объединения Как вы уже заметили, синтаксически класс похож на структуру. Вас, возможно, удивило то, что класс и структура имеют фактически одинаковые свойства.

В С++ определение структуры расширили таким образом, что туда, как и в определение класса, удалось включить функции-члены, в том числе конструкторы и деструкторы. Таким образом, единственным отличием между структурой и классом является то, что члены класса, по умолчанию, являются закрытыми, а члены структуры — открытыми. Здесь показан расширенный синтаксис описания структуры: высыпь иыи типа ( // открытые функции и данные — члены класса ркъчаее: // вакрытые функции и данные — члены класса > список объектов Таким образом, в соответствии с формальным синтаксисом С++ как структура, так и класс создают новые типы данных.

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