DATE & operator ++()
{
DATE Copy(*this);
day++;
month++;
year = year + 10;
return *this;
}
DATE& operator ++()
используется ссылка?DATE Copy(*this);
Date
можно было сделать ++date
, то надо переопределить вот такой вот оператор. Это позволяет писать более читаемый и короткий код. Вместо date.IncremeantAndReturn()
можно использовать идиоматичное ++date
, или даже что-то вроде while (++date < deadline)
. Это не обязательно делать, но иногда это весьма удобно и полезно.Сopy
не используется. Оно тут не нужно вообще. копия понадобится для постфиксного инкримента (i++), который должен возвращать неизмененный объект. *this
в конструктор Copy - это для вызова конструктора копирования, чтобы, внезапно, создать копию текущего объекта. Подумайте, как вам скопировать текущий объект? Надо новому объекту присвоить текущий, или в конструктор передать ему текущий объект. Но как передать текущий объект? У вас есть указатель на него this. Разыменовав этот указатель (*this) вы как раз можете передать текущий объект куда надо.