diff options
| author | Syndamia <kamen@syndamia.com> | 2024-05-10 11:33:50 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-05-10 11:33:50 +0300 |
| commit | 8dd9b39fa54a91030cdd5fe71973f78f7e8089e0 (patch) | |
| tree | 1c08da5ccfb2ba78db7555ea79ff61a39a9b4c20 /week12/Exercise3/TelecommunicationCompany.cpp | |
| parent | 66a5cdf79a8324019d9d34055ad212ad52504e3c (diff) | |
| download | oop-2023-solutions-8dd9b39fa54a91030cdd5fe71973f78f7e8089e0.tar oop-2023-solutions-8dd9b39fa54a91030cdd5fe71973f78f7e8089e0.tar.gz oop-2023-solutions-8dd9b39fa54a91030cdd5fe71973f78f7e8089e0.zip | |
[w12] Solved exercises 1 and 3
Diffstat (limited to 'week12/Exercise3/TelecommunicationCompany.cpp')
| -rw-r--r-- | week12/Exercise3/TelecommunicationCompany.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/week12/Exercise3/TelecommunicationCompany.cpp b/week12/Exercise3/TelecommunicationCompany.cpp new file mode 100644 index 0000000..b059edb --- /dev/null +++ b/week12/Exercise3/TelecommunicationCompany.cpp @@ -0,0 +1,47 @@ +#include "TelecommunicationCompany.h" +#include "MobileDevice.h" + +void TelecommunicationCompany::free() { + for (int i = 0; i < size; i++) { + delete devices[i]; + } + delete[] devices; +} + +void TelecommunicationCompany::resize() { + allocated *= 2; + MobileDevice** moreDevices = new MobileDevice*[allocated]; + for (int i = 0; i < size; i++) { + moreDevices[i] = devices[i]; + } + delete[] devices; + devices = moreDevices; +} + +TelecommunicationCompany::TelecommunicationCompany() { + devices = nullptr; + allocated = size = 0; +} + +TelecommunicationCompany::~TelecommunicationCompany() { + free(); +} + +TelecommunicationCompany::TelecommunicationCompany(TelecommunicationCompany&& other) { + this->size = other.size; + this->allocated = other.allocated; + this->devices = other.devices; + other.devices = nullptr; +} + +TelecommunicationCompany& TelecommunicationCompany::operator=(TelecommunicationCompany&& other) { + if (this != &other) { + free(); + + this->size = other.size; + this->allocated = other.allocated; + this->devices = other.devices; + other.devices = nullptr; + } + return *this; +} |
