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

shared_ptr в классе - C++

Восстановить пароль Регистрация
 
Droll
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 48
17.06.2013, 14:14     shared_ptr в классе #1
Доброго времени суток. Вопрос по использованию 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);};
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 14:14     shared_ptr в классе
Посмотрите здесь:

C++ shared_ptr и vector
наследование от shared_ptr C++
C++ Shared_ptr собственная реализация
shared_ptr с потомками C++
shared_ptr валится C++
C++ Shared_ptr
C++ Шаблонный класс shared_ptr
Weak_ptr и shared_ptr C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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