Website Summary Files Commits Branches @commit @diff @stats
path: root / Week04 / Exercise02 / IntArray.h
diff options
context:
space:
mode:
Commite5c06fbc864205a9736f07f9237ace80617ca471 (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-03-16 22:41:31 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-03-16 22:41:31 +0200
Filesf916efca600b104f3489a8501bffa448f11dfe79 /Week04/Exercise02/IntArray.h
oop-2025-solutions-e5c06fbc864205a9736f07f9237ace80617ca471.tar
oop-2025-solutions-e5c06fbc864205a9736f07f9237ace80617ca471.tar.gz
oop-2025-solutions-e5c06fbc864205a9736f07f9237ace80617ca471.zip
Parent5624cd9b63bec13fc464a3d7820d703abd8de113 (diff)
feat(Week04): Add solutions
1 files changed, 44 insertions, 0 deletions
-rw-r--r--Week04/Exercise02/IntArray.h44
diff --git a/Week04/Exercise02/IntArray.h b/Week04/Exercise02/IntArray.h
new file mode 100644
index 0000000..0ed99c9
--- /dev/null
+++ b/Week04/Exercise02/IntArray.h
@@ -0,0 +1,44 @@
+#ifndef _INTARRAY
+#define _INTARRAY
+
+class IntArray {
+ int* elems;
+ unsigned capacity;
+
+ /* Как трябва да изглежда голяма четворка: */
+
+ void free() {
+ delete[] elems;
+ }
+ void copyFrom(const IntArray& other) {
+ capacity = other.capacity;
+
+ elems = new int[capacity];
+ for (unsigned i = 0; i < capacity; ++i)
+ elems[i] = other.elems[i];
+ }
+public:
+ IntArray() {
+ elems = nullptr;
+ capacity = 0;
+ }
+ ~IntArray() {
+ free();
+ }
+ IntArray(const IntArray& other) {
+ copyFrom(other);
+ }
+ IntArray& operator=(const IntArray& other) {
+ if (this != &other) {
+ free();
+ copyFrom(other);
+ }
+ return *this;
+ }
+
+ int At(unsigned index);
+ void Resize(unsigned capacity);
+ void Concat(const IntArray& endElements);
+};
+
+#endif /* _INTARRAY */