Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 48
1

shared_ptr в классе

17.06.2013, 14:14. Показов 1085. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Вопрос по использованию shared_ptr, который описан следующим образом:
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
37
38
39
40
41
42
43
template<class T> class auto_ptr{
    T* m_pointer;
    int* m_count;
public:
    // constructor
    auto_ptr(T* pointer=0):m_pointer(pointer){
        m_count = (pointer)?new int(1):0;
    }
    //dereferencing object
    T& operator* (){return *m_pointer;}
    //dereferencing pointer
    T* operator-> (){return m_pointer;}
    //copy constructor
    auto_ptr(const auto_ptr& ptr_cpy){
        m_pointer = ptr_cpy.m_pointer;
        m_count = ptr_cpy.m_count;
        *m_count+=1;
    }
    auto_ptr& operator=(const auto_ptr& ptr_cpy){
        this->~auto_ptr();
        m_pointer = ptr_cpy.m_pointer;
        m_count = ptr_cpy.m_count;
        *m_count+=1;
        return *this;
    }
    void reset(T* ptr_new){
        this->~auto_ptr();
        new (this) auto_ptr(ptr_new);
    }
    //destructor
    ~auto_ptr(){
        if(m_count)
        {
            *m_count-=1;
            if(*m_count==0)
            {
                delete m_pointer;
                delete m_count;
            }
        }
    }
 
};
вопрос следующий, мне нужно использовать это поинтер в классе string. ПОдскажите, пожалуйста, как правильно это реализовать. Я пытаюсь делать следующим образом, но не получается:
C++
1
2
3
4
5
6
class string{
auto_ptr<char*> m_ptr;
public:
string(char* cstr):m_ptr(cstr){}
const char* getText()const{return *(m_ptr);};
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2013, 14:14
Ответы с готовыми решениями:

C++ 11 shared_ptr
Есть вопрос из теста You have some code that creates a HardwareContext object representing a...

Shared_ptr
Всем хай. Есть некий класс и в нём такой метод: class Base { public: ...

Shared_ptr
Есть следующий код: int main() { std::map&lt;std::string, std::shared_ptr&lt;int&gt;&gt; mp; while...

Реализация shared_ptr
Добрый день. Реализовал shared_ptr(), но если больше 2 перемен он не правильно работает. Что я ...

0
17.06.2013, 14:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2013, 14:14
Помогаю со студенческими работами здесь

Unique() в shared_ptr
Привет. что-то ошибку выдает в функции unique() для shared_ptr. Если написать == 0, то всё норм...

Наследование от shared_ptr
Добрый день. Подскажите вот какую вещь. Сделал удобный для себя класс для ведения логов. В нем...

shared_ptr и vector
почему в vector нельзя засунуть shared_ptr ?...

This для shared_ptr
Как создать объект shared_ptr, в котором будет лежать this?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru