Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование c++. Vault proxy

Семён Чиников Ученик (106), открыт 1 неделю назад
В этой задаче вам предстоит реализовать паттерн прокси. class IVault { public: virtual bool unlock(int password) = 0; }; class Vault : public IVault { int password; public: Vault(int password): password(password) {}; bool unlock(int pass) override { return password == pass; } }; Перед вами абстрактный класс IVault, а также его наследник Vault. Вам нужно написать класс прокси: class Proxy : public IVault { public: Proxy(IVault* realObject, int attempts); bool unlock(int pass) override; }; В конструкторе передается указатель на объект Vault, а также переменная attempts. Прокси должен перенаправлять вызовы unlock к реальному объекту, считать количество неудачных вызовов, а возвращать тот результат, который вернул лежащий под прокси объект Vault. Однако помимо этого он считает кол-во неудачных попыток(которые привели к false). Если кол-во неудачных попыток превысило attempts раз, то прокси должен бросить исключение типа ExceptionAttempts class ExceptionAttempts : public std::exception { }; Если у прокси был вызван unlock, который привел к true, или же прокси бросил исключение, это этим объектом-прокси более не пользуются. В систему отправляйте код классов ExceptionAttempts и Proxy, а также любой другой код, который поможет решить задачу
0 ответов
Похожие вопросы