Первое с чего стоит начать это дедлайны:
АКТУАЛЬНАЯ ВЕРСИЯ ТУТ
Методичка будет совершенствоваться и пополняться по мере выполнения работы автором. Автор не несет ответственности за правильность материала.
В качестве примера будет распариваться вариант номер 1.
Задание:
На одном из столов офиса растёт стопка макулатуры и одноразовой посуды. Сотрудники опасаются, что в определённый момент равновесие нарушится и стопка упадёт. Разработайте для них программу, позволяющую воссоздать стопку и определить, находится ли она в равновесии.
Создадим класс Paper. Для этого нужно создать 2 файла. Первый файл - заголовочный, в нем будет содержаться все описание класса. В нашем случае это Paper.h. И второй файл Paper.cpp, в нем уже будет реализация всех методов(функций) класса.
Рассмотрим заголовочный файл. Он содержит в себе несколько полей, объявим их приватными.
Class Paper{
private:
int height;
int widht;
int thickness;
int x;
int y;
}
Далее требуется создать 3 типа конструкторов, см рисунок.

Разберем каждый тип
Первый, конструктор по умолчанию, ни что иное, как создание пустого объекта.
Важно! Все конструкторы должны быть публичными, иначе работать не будет.
Class Paper{
public:
Paper() = default;
private:
int height;
int width;
int thickness;
int x;
int y;
}
Далее требуется конструктор инициализации, если раньше мы создавали просто пустой объект, то теперь во время создания мы будем передавать в него всю информацию
Class Paper{
public:
Paper() = default;
Paper(int height, int widht, int thickness, int x, int y);
private:
int height;
int width;
int thickness;
int x;
int y;
}
Но этой информации уже будет недостаточно для работы конструктора, вернемся к файлу Paper.cpp и запишем следующее:
#include "Paper.h"
Paper::Paper(int height, int width, int thickness, int x, int y) :
hieght(hieght), widht(width), thickness(thickness), x(x),
y(y) {}
Тем самым мы инициализируем все элементы класса. А, и да, все что идет после : навевается списком инициализации.
Остался последний тип конструктора - конструктор копирования.