diff options
| author | Syndamia <kamen@syndamia.com> | 2024-05-10 10:10:21 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-05-10 10:10:21 +0300 |
| commit | 7b19cabee8b08478f31f6e4594ed28e1d04e153c (patch) | |
| tree | 3574b2c3fd75ab66701def640fe7476651236184 /week11/Exercise05 | |
| parent | 437e306dc9b79905105fb2e8af6dd1eae1b908ae (diff) | |
| download | oop-2023-solutions-7b19cabee8b08478f31f6e4594ed28e1d04e153c.tar oop-2023-solutions-7b19cabee8b08478f31f6e4594ed28e1d04e153c.tar.gz oop-2023-solutions-7b19cabee8b08478f31f6e4594ed28e1d04e153c.zip | |
[w11] Solved exercises
Diffstat (limited to 'week11/Exercise05')
| -rw-r--r-- | week11/Exercise05/Counted.hpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/week11/Exercise05/Counted.hpp b/week11/Exercise05/Counted.hpp new file mode 100644 index 0000000..fe705ab --- /dev/null +++ b/week11/Exercise05/Counted.hpp @@ -0,0 +1,64 @@ +#pragma once + +template <class T> +class Counted { + T elem; + unsigned count; + +public: + T& GetElem(); + unsigned GetCount(); + + Counted& operator++(); + Counted operator++(int); + Counted& operator--(); + Counted operator--(int); + Counted& operator+=(int countChange); + Counted& operator-=(int countChange); +}; + +template <class T> +T& Counted<T>::GetElem() { + return elem; +} + +template <class T> +unsigned Counted<T>::GetCount() { + return count; +} + +template <class T> +Counted<T>& Counted<T>::operator++() { + ++count; + return *this; +} + +template <class T> +Counted<T> Counted<T>::operator++(int) { + count++; + return *this; +} + +template <class T> +Counted<T>& Counted<T>::operator--() { + --count; + return *this; +} + +template <class T> +Counted<T> Counted<T>::operator--(int) { + count--; + return *this; +} + +template <class T> +Counted<T>& Counted<T>::operator+=(int countChange) { + count += countChange; + return *this; +} + +template <class T> +Counted<T>& Counted<T>::operator-=(int countChange) { + count -= countChange; + return *this; +} |
