Advertisement
kutuzzzov

Урок 5-2 путешествия с раии

Jun 5th, 2023
1,463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #pragma once
  2.  
  3. namespace raii {
  4.     template <typename Provider>
  5.     class Booking {
  6.     private:
  7.         using BookingId = typename Provider::BookingId;
  8.         Provider* provider_;
  9.         int counter_;
  10.  
  11.     public:
  12.         Booking(Provider* p, int counter)
  13.             : provider_(p)
  14.             , counter_(counter) {
  15.         }
  16.         Booking(const Booking&) = delete;
  17.         Booking(Booking&& other) = default;
  18.         Booking& operator=(const Booking&) = delete;
  19.         Booking& operator=(Booking&& other) = default;
  20.         ~Booking() {
  21.             if (provider_ != nullptr) {
  22.                 provider_->CancelOrComplete(*this);
  23.             }
  24.         }
  25.     // Эта функция не требуется в тестах, но в реальной программе она может быть нужна
  26.     BookingId GetId() const;  
  27. };
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement