Website Summary Files Commits Branches @commit @diff @stats
path: root / Week07 / Exercise01 / User.h
diff options
context:
space:
mode:
Commit945f7e67d6ca8047c961457786fac5e2d9a13d82 (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-04-03 18:17:51 +0300
Committer
 Syndamia <kamen@syndamia.com>
2026-04-03 18:17:51 +0300
Files5c6b23aaee4eb653f9c461d7303edcd31d697f10 /Week07/Exercise01/User.h
oop-2025-solutions-945f7e67d6ca8047c961457786fac5e2d9a13d82.tar
oop-2025-solutions-945f7e67d6ca8047c961457786fac5e2d9a13d82.tar.gz
oop-2025-solutions-945f7e67d6ca8047c961457786fac5e2d9a13d82.zip
Parent8f162cde46a34d04e3a8a655067ee5174258e249 (diff)
feat(Week07): Add solutions
1 files changed, 45 insertions, 0 deletions
-rw-r--r--Week07/Exercise01/User.h45
diff --git a/Week07/Exercise01/User.h b/Week07/Exercise01/User.h
new file mode 100644
index 0000000..7e04560
--- /dev/null
+++ b/Week07/Exercise01/User.h
@@ -0,0 +1,45 @@
+#ifndef _USER
+#define _USER
+
+#include "String.h"
+#include "Book.h"
+
+class User {
+ String email;
+ String password;
+ unsigned bankCard;
+
+ // Масив от указатели към книги
+ const Book** library;
+ unsigned libraryCount;
+ unsigned libraryAlloc;
+
+ void copyFrom(const User& other);
+ void free();
+
+ void resizeLibrary();
+
+public:
+ User();
+ ~User();
+ User(const User& other);
+ User& operator=(const User& other);
+ User(User&& other);
+ User& operator=(User&& other);
+
+ void SetEmail(const String& newEmail);
+ const String& GetEmail() const;
+
+ void SetPassword(const String& newPassword);
+
+ bool Login(const String& email, const String& password);
+
+ void AddBookToLibrary(const Book* book);
+ void ListLibrary();
+ const Book* GetBook(unsigned index) const;
+
+ void SetBankCard(unsigned newBankCard);
+ unsigned GetBankCard() const;
+};
+
+#endif /* _USER */