Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Expression;
- struct Number;
- struct BinaryOperation;
- struct FunctionCall;
- struct Variable;
- struct ScopedPtr
- {
- // реализуйте следующие методы:
- //
- explicit ScopedPtr(Expression *ptr = 0) {
- ptr_ = ptr;
- };
- ~ScopedPtr() {
- delete ptr_;
- };
- Expression* get() const {
- return ptr_;
- };
- Expression* release() {
- Expression *tmp;
- tmp = ptr_;
- ptr_=0;
- return tmp;
- };
- void reset(Expression *ptr = 0) {
- delete ptr_;
- };
- Expression& operator*() const {
- return *ptr_;
- };
- Expression* operator->() const {
- return ptr_;
- };
- private:
- // запрещаем копирование ScopedPtr
- ScopedPtr(const ScopedPtr&);
- ScopedPtr& operator=(const ScopedPtr&);
- Expression *ptr_;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement