aboutsummaryrefslogtreecommitdiff
path: root/week12/Exercise3/TelecommunicationCompany.cpp
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-05-10 11:33:50 +0300
committerSyndamia <kamen@syndamia.com>2024-05-10 11:33:50 +0300
commit8dd9b39fa54a91030cdd5fe71973f78f7e8089e0 (patch)
tree1c08da5ccfb2ba78db7555ea79ff61a39a9b4c20 /week12/Exercise3/TelecommunicationCompany.cpp
parent66a5cdf79a8324019d9d34055ad212ad52504e3c (diff)
downloadoop-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.cpp47
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;
+}