

Лекция 1. Основы ООП в С++
Presentation
•
Computers
•
University
•
Practice Problem
•
Easy
Ящун Викторовна
Used 8+ times
FREE Resource
30 Slides • 13 Questions
1
ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В С++
2
Poll
Вы готовы к активной учебе в весеннем семестре?
Да, конечно
Нет, каникулы пролетели быстро
50/50
3
Poll
Оцените свой уровень знания зыка С++
Легко пишу красивый и профессиональный код
Уверенно составляю программы в рамках учебных заданий
С трудом программирую, использую чат GPT
Не могу написать даже простую программу
4
5
Объектно-ориентированное программирование (ООП) – парадигма программирования, основанная на концепции «объектов», которые являются экземплярами классов
Объектно-ориентированное программирование (ООП) – новая парадигма программирования, то есть, новый, иной способ мышления при написании программ
ООП позволяет структурировать программу вокруг данных (объектов) и методов (функций), которые могут выполнять операции над этими данными
6
«Императив» - приказ, команда
Большинство языков программирования (ЯП) позволяют составлять программы в виде последовательности команд (набора определенных операторов). Это императивное программирование
7
Часто, решаемую задачу, можно разложить на относительно независимые блоки (подзадачи), которые, взаимодействуя между собой, достигают исходной поставленной цели
Объекты, согласованно взаимодействуя между собой, образуют единое устройство
Объект располагается в независимой области памяти и содержит определенные данные
8
Multiple Choice
Какой подход используется в императивном программировании?
Разложение задач на классы
Формирование объектов на основе классов
Составление программ в виде последовательности команд
Создание методов для взаимодействия объектов
9
Multiple Choice
Что такое объектно-ориентированное программирование (ООП)?
Метод написания программ на языке С++
Набор команд для выполнения
Парадигма программирования, основанная на объектами
Язык программирования
10
Свойства объектов программист придумывает сам
Может формироваться множество объектов, отличающихся между собой количественными характеристиками, образуя единый класс таких объектов
В парадигме ООП именно класс отвечает за порождение объектов определенного вида
11
Класс - пользовательский тип, объединяющий в себе разнотипные данные, называемые полями или атрибутами, и функции, обрабатывающие эти данные
Класс в ООП выступает в роли схемы, чертежа, по которому конструируются объекты этого класса
Класс - абстрактный тип данных с открытым интерфейсом и скрытой внутренней реализацией
12
Метод класса - функция, которая определяет поведение, т.е. способ взаимодействия между экземпляром и другими сущностями, реакции на внешние воздействия экземпляров класса (переменных соответствующего типа)
С каждым объектом, помимо данных, могут быть связаны методы
Через методы происходит взаимодействие с объектами
13
Класс выступает независимой единицей программного кода, в котором реализован определенный фрагмент
Каждый объект класса имеет свой независимый набор данных и общий набор методов, через которые происходит взаимодействие с этим объектом
14
Классы – это не просто хранилища данных, а полноценные фрагменты программы, работающие независимо друг от друга и остальной части программы
Работа алгоритма класса выполняется на уровне объектов, так как именно объекты содержат конкретные данные, которые можно обрабатывать
15
Multiple Choice
Что такое класс в объектно-ориентированном программировании?
Набор команд
Тип данных, объединяющий данные и методы
Функция для обработки данных
Экземпляр объекта
16
Программный код, написанный по принципам ООП, представляет собой набор абстрактных сущностей, обладающих состоянием и поведением, а также и способов их взаимодействия
17
Определяя класс, программист разрешает взаимодействие с ним через публичные разрешенные методы и реже напрямую через данные
18
Новые классы можно определять на основе других, ранее сформированных классов
19
Всю логику взаимодействия между объектами можно описать на общем уровне – уровне базовых классов, так как в них объявлены все необходимые для этого переменные и методы
Конкретная реализация будет определяться дочерними классами
Методы в базовых классах можно объявлять так, чтобы реализации для них подставлялись из соответствующих дочерних классов
В концепции ООП это называется полиморфизмом
20
21
22
Multiple Choice
Какой из перечисленных принципов не относится к ООП?
Абстракция
Инкапсуляция
Компиляция
Полиморфизм
23
24
Структуры – это исторически первый вариант объявления типов объектов
25
Имя класса является новым типом данных
Список членов класса включает описание данных и функций
После описания класса можно создавать объекты этого класса
26
Переменные класса - экземпляры или объекты
В памяти будет отведено место под поля данные, методы не дублируются, они описаны один раз в классе
27
Имя класса является новым типом данных
Имя класса является новым типом данных
28
Multiple Choice
Какое отличие между структурами и классами в C++?
Структуры могут содержать методы
Все поля структуры публичные по умолчанию, а поля класса приватные
Классы не могут содержать поля
Структуры используют динамическую память
29
Имя класса является новым типом данных
Имя класса является новым типом данных
Память под x и y нигде не выделяется, т.к. это поля будущих объектов, а класс – лишь тип данных
Методы set_coords() и get_coords() - функции, заданные в области видимости этого класса
Имя класса является новым типом данных
30
ОСОБЕННОСТИ РАБОТЫ С ОБЪЕКТАМИ
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
У каждого объекта будут свои независимые переменные x и y
А методы у всех объектов общие и располагаются в классе Point2D
Метод set_coords не может быть вызван без привязки к какому-либо объекту класса Point2D, так как компилятор не может определить значение неявного указателя this
31
НЕЯВНЫЙ УКАЗАТЕЛЬ this
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Функции-члену класса передается скрытый указатель this на объект, вызывающий функцию
Указатель this – указатель на объект класса, который в момент вызова метода получает адрес объекта, для которого метод вызывается
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
32
РАБОТА С ДИНАМИЧЕСКОЙ ПАМЯТЬ
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
33
Multiple Choice
Что такое неявный указатель this в методах класса?
Указатель на статическую переменную
Указатель на объект, вызывающий метод
Указатель на метод класса
Указатель на локальную переменную
34
Multiple Choice
Как обращаются к методам класса, если объекты создаются с помощью оператора new?
Через точку (.)
Через стрелку (->)
Нельзя обращаться, метод будет недоступен
Через символ &
35
МОДИФИКАТОРЫ ДОСТУПА
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Инкапсуляция - объединение данных, описывающих одну сущность, и методов для обработки этих данных
Переменные и функции, объявленные в разделе класса по умолчанию или явно как private, имеют область видимости в пределах класса
Члены класса можно сделать видимыми вне класса, если объявить в разделе public:
Переменные объявляются в разделе private, а функции в разделе public
36
СЕКЦИЯ private
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Модификаторы доступа – это ключевые слова, после указания которых данные и методы становятся доступны или закрыты для внешнего, т.е. за пределами класса, использования
37
Multiple Choice
Какой модификатор доступа по умолчанию используется для полей классов в C++?
public
private
protected
static
38
private и public
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Модификатор доступа private запрещает доступ к данным класса за его пределами, public – открывает
Принято поля-данные задавать с модификатором private, иначе происходит нарушение принципа инкапсуляции
Методы задают с модификатором public, иначе будет отсутствовать возможность вызова метода за пределами класса
39
Multiple Choice
Как можно получить доступ к приватным полям класса?
Непосредственно через имя переменной
Через публичные методы класса
Только через глобальные функции
Это невозможно
40
private и public
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
41
private и public
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
Имя класса является новым типом данных
42
Multiple Choice
Почему неправильный доступ к приватным данным класса может вызвать проблемы?
Программа всегда будет работать корректно
Данные могут быть изменены вне контроля класса
Программа будет работать быстрее
Приватные данные не влияют на работу класса
43
Poll
На сколько процентов вы чувствуете, что освоили учебный материал?
90-100%
70-89%
50-69%
Менее 50%
ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В С++
Show answer
Auto Play
Slide 1 / 43
SLIDE
Similar Resources on Wayground
32 questions
Патология водно-солевого обмена
Presentation
•
KG - University
42 questions
Презентация без названия
Presentation
•
KG - University
30 questions
Новый год
Presentation
•
University
36 questions
Обработка информации в текстовых процессорах
Presentation
•
University
39 questions
Коммуникационные технологии в профессиональной деятельности
Presentation
•
University
38 questions
Конкурс педагогического мастерства
Presentation
•
University
43 questions
Ответственность в коммерческих обязательствах
Presentation
•
University
32 questions
¿Cuánto sabes del mundo de habla hispana??
Presentation
•
KG - University
Popular Resources on Wayground
10 questions
Safety Day 2026 – Student Review
Quiz
•
9th Grade
21 questions
Continents and Oceans
Quiz
•
6th Grade
20 questions
Parts of Speech
Quiz
•
5th Grade
16 questions
Subject & Predicate
Quiz
•
5th Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
12 questions
Map Skills
Quiz
•
3rd Grade
22 questions
Continents and Oceans
Quiz
•
5th Grade
15 questions
Rounding Decimals
Quiz
•
5th Grade
Discover more resources for Computers
20 questions
Disney Trivia
Quiz
•
University
10 questions
Spanish Greetings and Goodbyes!
Presentation
•
6th Grade - University
20 questions
Physical or Chemical Change/Phases
Quiz
•
8th Grade - University
39 questions
Unit 7 Key Terms
Quiz
•
11th Grade - University
25 questions
SER and Subject Pronouns
Quiz
•
8th Grade - University
38 questions
Unit 6 Key Terms
Quiz
•
11th Grade - University
19 questions
Key Concepts in Buddhism
Quiz
•
University
0 questions
Cell Domain Basic Review (Biology)
Quiz
•
University