Skip to content

3 Home Work

Konychev Valera edited this page May 12, 2019 · 7 revisions

Теория:

!Теоретическое задание выполняется письменно!

  1. Что такое lvalue и rvalue ссылки, чем они отличаются друг от друга?
  2. Что такое списки инициализации конструктора? Зачем они нужны?
  3. Какие типы конструкторов вы знаете? В чём особенность каждого из них, зачем он нужен?
  4. Как и для чего нужно использовать const в методах класса?
  5. Как можно переопределять операторы в с++? Какие есть ограничение?
  6. Для чего нужно ключевое слово friend?
  7. В чём особенность new и delete по сравнению с malloc() и free().

Практика:

  1. Придумать и реализовать свой собственный класс.
  • Определите все необходимые для вашего класса конструкторы, если какой-то тип конструктора для Вашего класса не нужен, то напишите почему вы так считаете.

  • В классе должно быть перегруженно не менее 4 операторов, влючая operator<< и operator>>. Можете перегрузить и больше 4 операторов, но помните о здравом смысле.

  • Пожалуйста не забудьте про комментарии - пользователю не всегда очевидно, что делают ваши методы.

  • В файле main.cpp протестируйте свой класс, продемонстрируйте его работоспособность.

  • Напишите Makefile для сборки вашей библиотеки и тестовой программы(параметры сборки -Wall -Wextra -Werror -std=c++14 -O3).

    • команда make без параметров должна всё собрать.
    • make clean - очистить созданные исполняемые и объектные файлы (артефакты)
    • make exec - собрать и запустить тестовый исполняемый файл main.

P.S. Если не знаешь, что реализовать, то загляни в телефонную книгу.

Clone this wiki locally