aboutsummaryrefslogtreecommitdiff
path: root/week09/Exam1/DroneShow.h
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-04-22 13:52:55 +0300
committerSyndamia <kamen@syndamia.com>2024-04-22 13:52:55 +0300
commitf7ed9a8a6c31b17d54d2f37cc0f12b64f8e4b6d2 (patch)
tree866abf46779f63a2fd1c8cfc70f7ff5f3bc11752 /week09/Exam1/DroneShow.h
parenta2e284b0056075e2365deaa2455be567c3b3c945 (diff)
downloadoop-2023-solutions-f7ed9a8a6c31b17d54d2f37cc0f12b64f8e4b6d2.tar
oop-2023-solutions-f7ed9a8a6c31b17d54d2f37cc0f12b64f8e4b6d2.tar.gz
oop-2023-solutions-f7ed9a8a6c31b17d54d2f37cc0f12b64f8e4b6d2.zip
[w9] Added exercise descriptions and solution to exam 1
Diffstat (limited to 'week09/Exam1/DroneShow.h')
-rw-r--r--week09/Exam1/DroneShow.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/week09/Exam1/DroneShow.h b/week09/Exam1/DroneShow.h
new file mode 100644
index 0000000..fd7e880
--- /dev/null
+++ b/week09/Exam1/DroneShow.h
@@ -0,0 +1,28 @@
+#include "Drone.h"
+
+class DroneShow {
+ char* name; // ок ако има голяма петица и нужните проверки, иначе трябва да е "char name[128]"
+ // масив от указатели, ако е nullptr значи няма дрон, иначе има
+ // това е по-добра интерпретация от това във всеки дрон да пазим "isEmpty" булева стойност или подобно, понеже
+ // пише че на позиция може да *няма* дрон, тоест аргумент е ако има дефолтен дрон пак да кажем, че има
+ Drone* drones[1024];
+
+ // Голямата петица не дава директно точки, но отнема
+ // Щом имаме динамична памет, тогава ЗАДЪЛЖИТЕЛНО трябва да имаме голяма петица
+ void free();
+ void copyFrom(const DroneShow& other);
+public:
+ DroneShow();
+ ~DroneShow();
+ DroneShow(const DroneShow& other);
+ DroneShow& operator=(const DroneShow& other);
+ DroneShow(DroneShow&& other);
+ DroneShow& operator=(DroneShow&& other);
+
+ // +0.15 за метод
+ bool isEmpty(int index);
+ // +0.50 за конструктор; не са ни дадени ограничения, затова правим възможно най-простия такъв
+ DroneShow(const char* name, Drone* drones[1024]);
+ // +0.35 за метод
+ void play();
+};