Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Программирование – 1 курс весна 2022 – 4 занятие

Программирование – 1 курс весна 2022 – 4 занятие

ТиМПИ

March 15, 2022
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. 2/26 2/26 План занятия 1. Общая парадигма ООП 2. Понятия

    классов и объектов в С++ 3. Сеттеры и геттеры, указатель this 4. Конструкторы и деструкторы классов, конструктор по умолчанию, их перегрузка 5. Конструктор копирования
  2. 3/26 3/26 Общая парадигма ООП Структурное программирование Объектно-ориентированное программирование —

    парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков — парадигма программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования
  3. 4/26 4/26 Объект и класс 1/2 Класс Объект class <имя

    класса> { [данные и методы] };
  4. 5/26 5/26 Объект и класс 2/2 Класс Объект — это

    описание того, какими свойствами и поведением будет обладать объект — это экземпляр с собственным состоянием этих свойств
  5. 6/26 6/26 Создание представителя и экземпляра класса class Cat {

    int mood, hungry, energy; void Meow(); }; Cat Barsik; Cat* Murzik = new Cat; представитель класса экземпляр класса private — закрытые (по умолчанию) public — открытые
  6. 8/26 8/26 Добавим метод setMood() Инкапсуляция — это принцип ООП,

    заключающийся в контроле доступа к полям и методам объекта. → Инкапсуляция помогает защитить данные и саму программу от постороннего вмешательства. → Пользователь будет работать в программе через интерфейс, не обращая внимает на то, как программа работает.
  7. 11/26 11/26 Геттеры и сеттеры 1/2 Геттеры и сеттеры —

    это методы доступа, которые помогают управлять доступом к различным переменным в коде. • get() — применяется для чтения переменной • set() — применяется для записи переменной Настроение Барсика оценивается в: -858993460
  8. 13/26 13/26 Указатель this 1/2 Файл cat.h Файл cat.cpp Указатель

    this хранит адрес определённого объекта класса и неявно указывает методам класса с данными какого объекта надо работать.
  9. 14/26 14/26 Указатель this 2/2 • this представляет собой неявно

    определенный указатель на сам объект • c помощью this метод класса определяет, с данными какого объекта ему предстоит работать • при вызове метода ему передается неявный аргумент, содержащий адрес объекта, для которого эта функция вызывается Использование this необходимо в функциях, которые непосредственно работают с указателем на объект: • this — указатель на объект (адрес объекта) • *this — разыменованый указатель (сам объект) … Некий класс Объект 1 this Объект 2 this Объект N this
  10. 18/26 18/26 Конструктор и деструктор 1/2 Конструктор — это особый

    метод класса, который выполняется автоматически в момент создания объекта класса. Деструктор — это особый метод класса, который срабатывает во время уничтожения объектов класса (используется для освобождения динамической памяти, которую выделял конструктор для объекта).
  11. 20/26 20/26 Базовые замечания • Конструктор и деструктор, мы всегда

    объявляем в разделе public. • При объявлении конструктора, тип данных возвращаемого значения не указывается, в том числе — void. • У деструктора также нет типа данных для возвращаемого значения, к тому же деструктору нельзя передавать никаких параметров. • Имя класса и конструктора должно быть идентично. • Имя деструктора идентично имени конструктора, но с приставкой ~ . • В классе допустимо создавать несколько конструкторов, если это необходимо. Их имена будут одинаковыми. Компилятор будет их различать по передаваемым параметрам (как при перегрузке функций). Если мы не передаем в конструктор параметры, он считается конструктором по умолчанию. • В классе может быть объявлен только один деструктор.
  12. 25/26 25/26 Реализация Cat mood - field hungry - field

    energy - field meow() - method Feed hungry -- mood ++ meow! Sleep hungry -- energy ++ Play energy -- mood ++ meow!