diff options
clean up
1 files changed, 0 insertions, 99 deletions
| -rw-r--r-- | Sem. 11/example/Person.cpp | 99 |
diff --git a/Sem. 11/example/Person.cpp b/Sem. 11/example/Person.cpp deleted file mode 100644 index ae78280..0000000 --- a/Sem. 11/example/Person.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "Person.h" -#include <iostream> - -using namespace std; - -Person::Person() : Person("Unknown", 0) -{ - -} -Person::Person(const char* name, int age) : name(nullptr), age(age) -{ - cout << "Constr" << endl; - setName(name); - setAge(age); -} - -Person::Person(const Person& other) -{ - cout << "copy constr" << endl; - copyFrom(other); -} -Person::Person(Person&& other) -{ - cout << "Move constr" << endl; - - name = other.name; - age = other.age; - - other.name = nullptr; -} - -Person& Person::operator=(Person&& other) -{ - - std::cout << "Move op= " << endl; - if (this != &other) - { - free(); - - name = other.name; - other.name = nullptr; - - age = other.age; - - } - return *this; -} - -Person& Person::operator = (const Person& other) -{ - cout << "op =" << endl; - if (this != &other) - { - free(); - copyFrom(other); - } - return *this; -} -Person::~Person() -{ - cout << "Destructor" << endl; - free(); -} - -const char* Person::getName() const -{ - return name; -} - -int Person::getAge() const -{ - return age; -} - -void Person::setName(const char* name) -{ - delete[] this->name; - this->name = new char[strlen(name) + 1]; - strcpy(this->name, name); -} -void Person::setAge(int age) -{ - if (age < 0 || age > 120) - age = 40; - this->age = age; -} - -void Person::copyFrom(const Person& other) -{ - name = new char[strlen(other.name) + 1]; - strcpy(name, other.name); - - age = other.age; -} -void Person::free() -{ - delete[] name; - age = 0; -}
\ No newline at end of file |
