diff options
feat(Week04): Add solutions
1 files changed, 44 insertions, 0 deletions
| -rw-r--r-- | Week04/Exercise02/IntArray.h | 44 |
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 */ |
