Skip to content

4 5 Home Work

Konychev Valera edited this page Mar 29, 2019 · 4 revisions

Теория:

!Теоретическое задание выполняется письменно! (Присылать желательно либо в формате .txt, либо .pdf, первый предпочтительно)

  1. Для чего нужно ключевое слово static?
  2. Что такое наследование и для чего оно нужно?
  3. Расскажите все, что вы знаете об public наследовании в С++.
  4. В чём особенность ссылок и указателей на базовый класс при public наследовании.
  5. Для чего нужны виртуальные методы?

Практика:

  1. Создайте базовый класс для графических объектов - class gObject. У него минимум должен быть 1 метод - draw(), который должен отвечать за отрисовку объекта на экране (вы можете просто выводить информацию об объекте в терминал, порисовать объекты в терминале, или найти графическую библиотеку и с её помощью создавать и отрисовывать реальные графические объекты например, libSDL). Описание базового класса и реализация его методов должны быть в gObject.h и gObject.cpp файлах.
  2. Создайте несколько наследников вашего графического базового класса: class segment (отрезок), circle (круг), ellipse (эллипс), triangle (треугольник), square (квадрат), rectangle (прямоугольник). Подумайте над иерархией классов, что чем является.
  • Напишите функцию main в main.cpp, которая должна отрисовать массив различных графических объектов.
  • Напишите Makefile для сборки вашей библиотеки и тестовой программы(параметры сборки -Wall -Wextra -Werror -std=c++14 -O3).
    • команда make без параметров должна всё собрать.
    • make clean - очистить созданные исполняемые и объектные файлы (артефакты)
    • make exec - собрать и запустить тестовый исполняемый файл main.
Clone this wiki locally