/
nanezz
/
st2
Обзор
Документация
Войти
/
nanezz
/
st2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
st2.cpp
46 строк
1 KB
nanezz
Create: st2.slnx, st2.cpp
02 авг 2026, 18:24
Верифицирован
02 авг 2026, 18:24
d5b5d13
Код
Авторство
О чём код?
#include <iostream> #include <string> #include <map> #include <memory> class VeryHeavyDatabase { public: std::string get_data(const std::string& key) const noexcept { return "Very Big Data String: " + key; } }; class OneShotDB : public VeryHeavyDatabase { public: explicit OneShotDB(VeryHeavyDatabase* real_object, size_t shots = 1) : real_db_(real_object), shots_(shots), count_(0) {} std::string get_data(const std::string& key) { if (count_ < shots_) { ++count_; return real_db_->get_data(key); } return "error"; } private: VeryHeavyDatabase* real_db_; size_t shots_; size_t count_; }; int main() { auto real_db = VeryHeavyDatabase(); auto limit_db = OneShotDB(std::addressof(real_db), 2); std::cout << limit_db.get_data("key") << std::endl; std::cout << limit_db.get_data("key") << std::endl; std::cout << limit_db.get_data("key") << std::endl; return 0; }