Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. struct Expression;
  2. struct Number;
  3. struct BinaryOperation;
  4. struct FunctionCall;
  5. struct Variable;
  6.  
  7. struct ScopedPtr
  8. {
  9.     // реализуйте следующие методы:
  10.     //
  11.     explicit ScopedPtr(Expression *ptr = 0) {
  12.         ptr_ = ptr;
  13.     };
  14.     ~ScopedPtr() {
  15.         delete ptr_;
  16.     };
  17.     Expression* get() const {
  18.         return ptr_;
  19.     };
  20.     Expression* release() {
  21.         Expression *tmp;
  22.         tmp = ptr_;
  23.         ptr_=0;
  24.         return tmp;
  25.     };
  26.     void reset(Expression *ptr = 0) {
  27.         delete ptr_;
  28.     };
  29.     Expression& operator*() const {
  30.         return *ptr_;
  31.     };
  32.     Expression* operator->() const {
  33.         return ptr_;
  34.     };
  35.  
  36.  
  37. private:
  38.     // запрещаем копирование ScopedPtr
  39.     ScopedPtr(const ScopedPtr&);
  40.     ScopedPtr& operator=(const ScopedPtr&);
  41.  
  42.     Expression *ptr_;
  43. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement