diff options
| author | Syndamia <kamen@syndamia.com> | 2024-04-22 15:43:49 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-04-22 15:43:49 +0300 |
| commit | f3406754705e508f57768d3d0d8e457ff5b7620c (patch) | |
| tree | 9f8743208732c21d5dcb51302feb29058edd8e58 /week08/Exercise4.h | |
| parent | f7ed9a8a6c31b17d54d2f37cc0f12b64f8e4b6d2 (diff) | |
| download | oop-2023-solutions-f3406754705e508f57768d3d0d8e457ff5b7620c.tar oop-2023-solutions-f3406754705e508f57768d3d0d8e457ff5b7620c.tar.gz oop-2023-solutions-f3406754705e508f57768d3d0d8e457ff5b7620c.zip | |
[w8] Added exercise descriptions and solutions to ex 1-7
Diffstat (limited to 'week08/Exercise4.h')
| -rw-r--r-- | week08/Exercise4.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/week08/Exercise4.h b/week08/Exercise4.h new file mode 100644 index 0000000..588589e --- /dev/null +++ b/week08/Exercise4.h @@ -0,0 +1,37 @@ +#include <iostream> + +class FloatArray { + float *numbers; + int lastUnused; + int allocated; + + void free(); + void copyFrom(const FloatArray& other); + + void resize(); + +public: + FloatArray(); + ~FloatArray(); + FloatArray(const FloatArray& other); + FloatArray& operator=(const FloatArray& other); + FloatArray(FloatArray&& other); + FloatArray& operator=(FloatArray&& other); + + void Add(float number); + + // Тези оператори променят аргумента си, затова е по-добре да са член-функции + FloatArray& operator+=(const FloatArray& other); + FloatArray& operator+=(float number); + // По дефиниция не може operator=, operator(), operator[] и operator-> да бъдат имплементирани + // като приятелски функции + float& operator[](int index); + + // Тези оператори не променят аргументите си, затова е по-добре да са приятелски + friend FloatArray operator+(const FloatArray& left, const FloatArray& right); + friend FloatArray operator+(const FloatArray& left, float right); + friend bool operator==(const FloatArray& left, const FloatArray& right); + friend bool operator!=(const FloatArray& left, const FloatArray& right); + friend std::ostream& operator<<(std::ostream& ostr, const FloatArray& right); + friend std::istream& operator>>(std::istream& ostr, FloatArray& right); +}; |
