Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename type>
- struct DataStruct
- {
- type data; // Переменная для хранения элемента
- DataStruct *next; // Указатель на след. элемент
- public : DataStruct() {};
- };
- // Односвязный список
- template<typename type>
- class List
- {
- protected:
- // Голова и хвост
- DataStruct<type> *head;
- DataStruct<type> *tail;
- public:
- List(); // Конструктор
- void addElement ( const type &element ); // Добавление елемента в список
- void deleteElement( const int i ); // Удаление элемента из списка
- void clear (); // Очистить список
- const nlohmann::json serialization (); // Сериализация данных
- void deserialization ( const nlohmann::json &data );
- type* operator[] ( const int i ); // Оператор индексирования
- ~List(); // Деструктор
- };
- template<typename type>
- void List<type>::addElement( const type &element) {
- DataStruct<type>* tmp = new DataStruct<type>(); // буферная структура
- tmp->data = element;
- tmp->next = nullptr;
- // Если в списке уже есть объекты
- if( this->head != nullptr ) {
- this->tail->next = tmp;
- this->tail = tmp;
- } else {
- // Если элемент первый - он является и хвостом и головой
- this->tail = this->head = tmp;
- }
- }
- // Вот это производный от первого класс, именно в нем храниться объект о котором дальше пойдет речь
- template<typename type>
- class WalletList : public List<type>
- {
- public:
- type* getWalletByCurrency ( const std::string &Currency); // Получить кошелек
- void createWalletsFromJson ( nlohmann::json &data );
- void createWalletsSecureFromJson ( nlohmann::json &data );
- std::map<std::string, long> getWallets();
- };
- // Вот это сам объект с которым возникают проблемы
- class Money
- {
- protected:
- std::string Currency;
- long Summ;
- public:
- Money () {};
- Money ( const std::string Currency, const long Summ );
- const std::string getCurrency (); // Получить наименование валюты
- const long getSum (); // Получить кол-во средств на счету
- virtual const nlohmann::json serialization ();
- bool withdraw ( const long &Summ );
- void operator+= ( const long &Summ); // Увеличить счет
- bool operator== ( const Money &money);
- static std::vector<std::string> getValidCurrencies();
- };
- // Это производный от первого, с ним сообветственно тоже такие же проблемы,
- // но это я скорее для полноты картины скинул
- class MoneySecure : public Money, public SecurePassword {
- public:
- MoneySecure () {};
- MoneySecure ( const std::string Currency, const long Summ, const std::string password ) : Money(Currency, Summ), SecurePassword(password) {}
- MoneySecure ( const std::string Currency, const long Summ, const long password ) : Money(Currency, Summ), SecurePassword(password) {}
- const nlohmann::json serialization () override;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement