Форум программистов, компьютерный форум CyberForum.ru

Реализуйте ScopedPtr - C++

Восстановить пароль Регистрация
 
lerka1996
2 / 2 / 0
Регистрация: 04.03.2015
Сообщений: 76
20.10.2015, 17:14     Реализуйте ScopedPtr #1
Реализуйте ScopedPtr, который будет работать с указателями на базовый класс Expression. В этом задании вам требуется реализовать методы get, release и reset, операторы * и -> так, как это было описано в предыдущем степе. А также реализуйте конструктор ScopedPtr от указателя на Expression.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SuperKir
20.10.2015, 17:19
  #2

Не по теме:

Почувствуй себя экстрасенсом..

ture
 Аватар для ture
404 / 297 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
20.10.2015, 17:22     Реализуйте ScopedPtr #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
struct Expression;
struct Number;
struct BinaryOperation;
 
struct ScopedPtr {
    // реализуйте следующие методы:
    //
    explicit ScopedPtr(Expression *ptr = 0) {
        this->ptr_=ptr;
    }
    ~ScopedPtr() {
        delete  ptr_;
    }
    Expression* get() const {
        return ptr_;
    }
    Expression* release() {
        Expression * ptr = this->ptr_;
        this->ptr_ = NULL;
        return ptr;
    }
    void reset(Expression *ptr = 0) {
        delete this->ptr_;
        this->ptr_ = ptr;
    }
    Expression& operator*() const {
        return *ptr_;
    }
    Expression* operator->() const {
        return ptr_;
    }
private:
    ScopedPtr& operator=(const ScopedPtr & other) {} //оператор присваивания
    ScopedPtr(const ScopedPtr & other) {} //конструктор копирования
    Expression *ptr_;
};
makemelaugh
4 / 4 / 2
Регистрация: 12.12.2013
Сообщений: 20
Завершенные тесты: 1
20.10.2015, 22:08     Реализуйте ScopedPtr #4
Не понимаю, как вы друг друга понимаете) Где класс Expression? Но ответ есть...)
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.10.2015, 22:51     Реализуйте ScopedPtr #5
ture, тело для копиконструктора и оп.присваивания не требуется, достаточно просто объявления в приватной секции. А ещё лучше = delete.
Не оч.понял смысл использования this при наличии суффикса в имени члена класса.
ture
 Аватар для ture
404 / 297 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
21.10.2015, 09:02     Реализуйте ScopedPtr #6
makemelaugh, мы друг друга не понимаем без "ключа". Все задачи дают в курсе на stepic. Я гоняю по расписанию и ищу задачу, которую решал раньше с похожим описанием. Если нашел, то выкладываю сюда.

Добавлено через 2 минуты
Tulosba, я раньше на шарп учился, потихоньку отучаю себя от явных изъянов в коде.
Yandex
Объявления
21.10.2015, 09:02     Реализуйте ScopedPtr
Ответ Создать тему
Опции темы

Текущее время: 20:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru