2 - Классы в C++ (Часть 1).

Лабораторная работа 2 для студентов курса “Программирование на основе классов и шаблонов” 2 семестра кафедры ИУ5 МГТУ им Н.Э. Баумана.

Содержание

Цель работы

Изучить основы объектно-ориентированного программирования в языке C++, освоить понятие класса, его структуры, научиться объявлять классы, создавать объекты и работать с их членами.

Цель данной лабораторной работы заключается в освоении навыков:

Начало работы

Зайдите в свою локальную директорию с репозиторием для выполнения лабораторных работ. Заберите ветку с соответствующей лабораторной работой из общего репозитория:

git pull upstream

или

git pull upstream lab_2

Переключитесь на ветку с текущей лабораторной работой:

git checkout lab_2

Свяжите ветку локального репозитория с вашим удаленным репозиторием:

git push --set-upstream origin lab_2

Задание

Основное задание

  1. Разработайте свой класс по варианту (в разработанных характеристиках должна быть хотя бы одна c-строка). Использование string запрещено. В разработанном классе должны быть методы:

    • Конструктор по умолчанию;
    • Конструктор с параметрами;
    • Конструктор копирования;
    • Оператор присваивания;
    • Деструктор;
    • Оператор вставки/вывода в поток;
    • Функции get() и set().
  2. Создайте один объект вашего класса и выведите значения его полей на экран.

  3. Создайте статический массив из пяти объектов. Добавьте в него с консоли несколько объектов, выведите массив на экран.

  4. Продумать следующие пункты меню:

    • Создание объекта;
    • Вывод объекта на экран;
    • Добавление объектов в массив;
    • Вывод массива на экран;
    • Выход.

Соблюдайте принципы разработки Rule of Five, DRY (Don’t Repeat Yourself).

Дополнительные задания (по вариантам)

  1. квартира, как объект для агентства
  2. автобус в автопарке
  3. анкета для опроса населения
  4. компьютер
  5. кандидат, участвующий в выборах
  6. железнодорожный билет
  7. файл на диске
  8. книга в библиотеке
  9. политическая партия
  10. кафедра института
  11. автомобиль
  12. авиабилет
  13. статья в журнале
  14. магазин
  15. абонент телефонной станции
  16. управление каталогом в файловой системе
  17. пациент в поликлинике
  18. дом, как объект ЖЭКа
  19. строительная бригада
  20. пищевой набор диеты
  21. дорога
  22. музыкальный альбом
  23. программное обеспечение
  24. заявки на выполнение работ
  25. товары в магазине
  26. участник соревнований
  27. фильмотека
  28. винотека

Указания по выполнению лабораторной работы

Требования к отчёту

Отчёт по лабораторной работе должен содержать:

Контрольные вопросы

  1. Что такое класс в языке C++?
  2. Чем класс отличается от структуры?
  3. Что называется объектом класса?
  4. Какие члены класса являются закрытыми, а какие — открытыми?
  5. Для чего используется конструктор по умолчанию?
  6. В каких случаях вызывается конструктор копирования?
  7. Для чего необходим оператор присваивания?
  8. Какую роль выполняет деструктор класса?
  9. Что такое перегрузка операторов?
  10. Как выполняется перегрузка операторов потокового ввода и вывода (<<, >>)?
  11. Почему при работе с C-строками требуется явное управление памятью?
  12. Как создать массив объектов пользовательского типа?
  13. В чём заключается разница между статическим и динамическим массивом объектов?
  14. Что такое инкапсуляция и как она реализуется в классах C++?
  15. Почему при использовании динамической памяти в классе необходимо реализовывать Rule of Five?
  16. Rule of Three, Rule of Five и Rule of Zero?