Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit77b020ac187205c808e667564fdc816ff4066d24 (patch)
Author
 Angel Dimitriev <angel_dimitriev@abv.bg>
2022-05-10 20:17:16 +0300
Committer
 GitHub <noreply@github.com>
2022-05-10 20:17:16 +0300
Files63b9b76ae842256c62172d5f8d114358bbfe34a4
Object-oriented_programming_FMI-77b020ac187205c808e667564fdc816ff4066d24.tar
Object-oriented_programming_FMI-77b020ac187205c808e667564fdc816ff4066d24.tar.gz
Object-oriented_programming_FMI-77b020ac187205c808e667564fdc816ff4066d24.zip
Parent6f731eaca151a66812ea58be71c5be9b51a66b88 (diff)
Update Optional.hpp
1 files changed, 22 insertions, 0 deletions
-rw-r--r--Sem. 10/Examples/Optional/Optional.hpp22
diff --git a/Sem. 10/Examples/Optional/Optional.hpp b/Sem. 10/Examples/Optional/Optional.hpp
index 9e3ab0f..147d8e5 100644
--- a/Sem. 10/Examples/Optional/Optional.hpp
+++ b/Sem. 10/Examples/Optional/Optional.hpp
@@ -12,6 +12,9 @@ public:
Optional();
Optional(const T& obj);
+ Optional(const Optional<T>& other);
+ Optional<T> operator=(const Optional<T>& other);
+
bool containsData() const;
const T& getData() const;
void setData(const T& el);
@@ -72,3 +75,22 @@ void Optional<T>::clear()
free();
data = nullptr;
}
+
+
+template <typename T>
+Optional<T>::Optional(const Optional<T>& other)
+{
+ copyFrom(other);
+}
+
+
+template <typename T>
+Optional<T> Optional<T>::operator=(const Optional<T>& other)
+{
+ if (this != &other)
+ {
+ free();
+ copyFrom(other);
+ }
+ return *this;
+}