From 75cff007b4896eed49b758be0959668673ae1bf3 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 8 May 2024 10:07:57 +0300 Subject: [w10] Fixed mistakes in certain exercises --- week10/Exercise08/Moderator.cpp | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'week10/Exercise08/Moderator.cpp') diff --git a/week10/Exercise08/Moderator.cpp b/week10/Exercise08/Moderator.cpp index d5d53b8..33ed638 100644 --- a/week10/Exercise08/Moderator.cpp +++ b/week10/Exercise08/Moderator.cpp @@ -1,13 +1,12 @@ #include "Moderator.h" #include +#include void Moderator::free() { - User::free(); delete[] signature; } void Moderator::copyFrom(const Moderator& other) { - User::copyFrom(other); this->signature = new char[strlen(other.signature) + 1]; strcpy(this->signature, other.signature); } @@ -17,38 +16,32 @@ Moderator::Moderator() : User() { } Moderator::~Moderator() { - Moderator::free(); + free(); } -Moderator::Moderator(const Moderator& other) { - Moderator::copyFrom(other); +Moderator::Moderator(const Moderator& other) : User(other) { + copyFrom(other); } Moderator& Moderator::operator=(const Moderator& other) { if (this != &other) { - Moderator::free(); - Moderator::copyFrom(other); + User::operator=(other); + free(); + copyFrom(other); } return *this; } -Moderator::Moderator(Moderator&& other) { - this->name = other.name; - other.name = nullptr; - this->password = other.password; - other.password = nullptr; +Moderator::Moderator(Moderator&& other) : User(other) { this->signature = other.signature; other.signature = nullptr; } Moderator& Moderator::operator=(Moderator&& other) { if (this != &other) { - Moderator::free(); + free(); + User::operator=(std::move(other)); - this->name = other.name; - other.name = nullptr; - this->password = other.password; - other.password = nullptr; this->signature = other.signature; other.signature = nullptr; } -- cgit v1.2.3