книга (И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++), страница 4

PDF-файл книга (И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++), страница 4 Практикум (Прикладное программное обеспечение и системы программирования) (37574): Книга - 4 семестркнига (И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++) - PDF, страница 4 (375742019-05-09СтудИзба

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

Файл "книга" внутри архива находится в папке "И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++". PDF-файл из архива "И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

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

Текст 4 страницы из PDF

Синтаксис описания классаСинтаксис описания класса:19Классы и объекты С++class Имя_класса { определение_членов_класса };Члены класса можно разделить на информационные членыи функции-члены (методы) класса. Информационные члены описываютвнутреннюю структуру информации, хранящейся в объекте, который создается на основе класса. Методы класса описывают алгоритмы обработки этойинформации.Данные, хранящиеся в информационных членах, описывают состояниеобъекта, созданного на основе класса. Состояние объекта изменяется на основе изменения хранящихся данных с помощью методов класса.

Алгоритмы,заложенные в реализации методов класса, определяют поведение объекта, тоесть реагирование объекта на поступающие внешние воздействия в видевходных данных.3.2. Управление доступом кчленам классаПринцип инкапсуляции обеспечивается вводом в класс областей доступа:— private— закрытый, доступный только собственным методам;— public— открытый, доступный любым функциям;— protected— защищенный, доступный только собственным методам и методам производных классов.Члены класса, находящиеся в закрытой области (private), недоступныдля использования со стороны внешнего кода. Напротив, члены класса, находящиеся в открытой секции (public), доступны для использования со стороны внешнего кода.

При описании класса каждый член класса помещаетсяв одну из перечисленных выше областей доступа следующим образом:class Имя_класса{private:определение_закрытых_членов_классаpublic:определение_открытых_членов_классаprotected:определение_защищенных_членов_класса...};Порядок следования областей доступа и их количество в классе —произвольны.Служебное слово, определяющее первую область доступа, может отсутствовать.

По умолчанию эта область считается private.В закрытую (private) область обычно помещаются информационныечлены, а в открытую (public) область — методы класса, реализующие интерфейс объектов класса с внешней средой. Если какой-либо метод имеетвспомогательное значение для других методов класса, являясь подпрограм-20Классы и объекты С++мой для них, то его также следует поместить в закрытую область. Это обеспечивает логическую целостность информации.После описания класса его имя можно использовать для описанияобъектов этого типа.Доступ к информационным членам и методам объекта , описаннымв открытой секции, осуществляется через объект или ссылку на объектс помощью операции выбора члена класса «.».Если работа с объектом выполняется с помощью указателя на объект, тодоступ к соответствующим членам класса осуществляется на основе указателя на член класса «−>»:class Х{public:char c;int f() {…}};int main (){Х x1;Х & x2 = x1;Х * p = & x1;int i, j, k;x1.c = ‘*’;i = x1.f();х1.с = '+';j = x2.f();x1.c = ‘#’;k = p -> f();…}Объекты класса можно определять совместно с описанием класса:class Y {…} y1, y2;3.3.

Классы и структуры С++Синтаксис класса в С++ совпадает с синтаксисом структуры С++:struct Имя_структуры { определение_членов_структуры };Класс С++ отличается от структуры С++ только определением поумолчанию первой области доступа в их описании (а также определением поумолчанию способа наследования, см. раздел 10.3):— для структур умолчанием является открытый доступ (public)— для классов умолчанием является закрытый доступ (private).Различия в умолчаниях связаны с различиями целей создания такихконструкций. Структуры создавались для объединения и совместного использования разнородных типов данных, например записей файлов.

Класспредназначен для определения полноценного типа данных.21Классы и объекты С++В C++ объекты можно создавать также на основе структури объединений (union).Структуру можно рассматривать как прообраз понятия класс. Изначально концепция структуры (например, в Си) служила исключительнообъединению разнородных данных в единой конструкции для совместнойобработки, то есть в понятии структуры присутствовала исключительно информационная составляющая. в С++ время в структуре могут бытьи функции-члены, в том числе и специальные члены — конструкторыи деструкторы, о которых будет рассказано в следующих разделах.

Структуры наравне с классами можно использовать для полноценного описаниятипов данных, включающего описания операций, применяемых к описываемому типу данных. Однако наличие информационных членов в открытойсекции нарушает один из основных принципов ООП — принцип инкапсуляции.3.4. Манипуляции с состояниемобъектаДля доступа к внутренним информационным членам объекта, созданного наоснове класса (чтение/запись), необходимо использовать специальные методы класса, называемые модификаторами (setters) и селекторами (getters).Они осуществляют подконтрольное считывание и изменение внутреннихинформационных членов. Так, если изменяется внутреннее информационноеполе size объекта класса stack, описывающее максимальный размер стека, тонеобходимо осуществить ряд действий по согласованному изменению другихинформационных членов (выделение дополнительной памяти и т.

д.):class stack{int* c1;int top, size;public:. . .int putnewsize ( int ns ){if ( top > ns ) return 1;int* nc1 = new int[ns];}if ( top > 0 )for ( int i = 0; i < top; ++I )nc1[i] = c1[i];delete c1;c1= nc1;size = ns;return 0;};Таким образом, изменение информационных полей объекта должноосуществляться специальными методами, производящими изменение требуемого информационного поля согласованно с одновременным изменениемдругих информационных полей.

Такие методы обеспечивают согласованность внутренних данных объекта.22Классы и объекты С++3.5. Класс как область видимостиКласс является областью видимости описанных в нем членов класса. Идентификатор члена класса локален по отношению к данному классу. Классымогут быть вложенными. Одноименные идентификаторы членов класса закрывают видимость соответствующих внешних идентификаторов.Операция «::» позволяет получить доступ к одноименным объектам,внешним по отношению к текущей области видимости, в частности, к глобальным функциям и переменным, следующим образом:имя_класса :: имя_члена_классаили для имен глобальных функций и переменных::: имяПример:int ia1;void f1 ( int b1 ){ia1 = ia1 + b1;}class x{int ia1;public:x() { ia1 = 0; }void f1 ( int b1 ){::f1(b1); // вызов глобальной функции}};int main(){x a2;a2.f1(2);return 0;}3.6.

Объявление и определениеметодов класса.Спецификатор «inline»Каждый метод класса, должен быть определен в программе. Определитьметод класса можно либо непосредственно в классе (если тело метода неслишком сложно и громоздко), либо вынести определение вне класса,а в классе только объявить соответствующий метод, указав его прототип.23Классы и объекты С++При определении метода класса вне класса для указания области видимости соответствующего имени метода используется операции «::»Пример:class x{int ia1;public:x() { ia1 = 0; }int func1();};int x::func1() { … return ia1; }Это позволяет повысить наглядность текста, особенно, в случае значительного объема кода в методах.

При определении метода вне классас использованием операции «::» прототипы объявления и определенияфункции должны совпадать.Метод класса и любую функцию, не связанную ни с каким классом,можно определить со спецификатором inline:inline int func1();Такие функции называются встроенными.Спецификатор inline указывает компилятору, что необходимо по возможности генерировать в точке вызова код функции, а не команды вызовафункции, находящейся в отдельном месте кода модуля. Это позволяетуменьшить время выполнения программы за счет отсутствия команд вызовафункции и возврата из функции, которые кроме передачи управления выполняют действия соответственно по сохранению и восстановлению контекста (содержимого основных регистров процессора).

При этом размермодуля оказывается увеличенным по сравнению с программой без спецификаторов inline. Следует отметить, что спецификатор inline является рекомендацией компилятору. Данный спецификатор неприменим для функций сосложной логикой. в случае невозможности использования спецификатора дляконкретной функции компилятор выдает предупреждающее сообщениеи обрабатывает функции стандартным способом.По определению методы класса, определенные непосредственнов классе, являются inline-функциям3.7.

Указатель «this»В классах С++ неявно введен специальный указатель this — указатель натекущий объект. Каждый метод класса при обращении к нему получаетданный указатель в качестве неявного параметра. Через него методы классамогут получить доступ к другим членам класса.Указатель this можно рассматривать как локальную константу, имеющую тип X*, если X — имя описываемого класса. Нет необходимости ис-24Классы и объекты С++пользовать его явно.

Он используется явно, например, в том случае, когдавыходным значением для метода является текущий объект.Данный указатель, как и другие указатели, может быть разыменован.При передаче возвращаемого значения метода класса в виде ссылки натекущий объект используется разыменованный указатель this, так как ссылка,как уже было указано, инициализируется непосредственным значением.Пример:class x{. . .public:x& f(. .

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