From 335c0fca5c74c263c8ff21b2db193b423e46c4fe Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Fri, 20 Sep 2019 14:56:56 +0300 Subject: Add files via upload --- Big4AndInheritance/Students/User.cpp | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Big4AndInheritance/Students/User.cpp (limited to 'Big4AndInheritance/Students/User.cpp') diff --git a/Big4AndInheritance/Students/User.cpp b/Big4AndInheritance/Students/User.cpp new file mode 100644 index 0000000..27947b1 --- /dev/null +++ b/Big4AndInheritance/Students/User.cpp @@ -0,0 +1,43 @@ +#include "User.h" + +/* +User::User(): name(nullptr),age(10) +{ + +} +*/ + +User::User(const char* name, int age) +{ + this->name = new char[strlen(name) + 1]; + strcpy(this->name, name); + this->age = age; +} +User::User(const User& other) +{ + cout << "Copy contr of user" << endl; + CopyFrom(other); +} +User& User::operator=(const User& other) +{ + if (this != &other) + { + Free(); + CopyFrom(other); + } + return *this; +} +User::~User() +{ + Free(); +} +void User::CopyFrom(const User& other) +{ + name = new char[strlen(other.name) + 1]; + strcpy(name, other.name); + age = other.age; +} +void User::Free() +{ + delete[] name; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d