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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
#1

Как использовать auto_ptr? - C++

21.02.2012, 22:05. Просмотров 1520. Ответов 4
Метки нет (Все метки)

Ищу, ищу, но нигде не могу найти на русском, да и на буржуйском, толковое описание использования auto_ptr. Везде только какие-то сверхсложные для моего понимания конструкции, где один auto_ptr объект ссылается на другой, я так и с обычными указателями, вроде, не работаю. И всякие сложные, там, композиции этих auto_ptr наподобие:
C++
1
2
3
4
5
6
7
8
9
class A
{
   auto_ptr<B> ptr<new B>;
}
 
class B
{
   auto_ptr<A> ptr<new A>
}
И ничего не сказано про самое наибанальное и наираспростаненного использование, например, для сборки мусора в функции, про многомерные массивы, насколько отличается этот тип указателей от обычных, вопросы производительности, подводные камни и т.д.
P.S. да и вообще непонятно зачем объявлять auto_ptr в качестве элементов данных, ведь есть же ещё ведь, вроде, деструкторы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2012, 22:05     Как использовать auto_ptr?
Посмотрите здесь:

Как правильно вызвать метод в С++ и как использовать команду goto в default C++
Класс auto_ptr C++
констанстность auto_ptr C++
C++ Как приведенный код использовать как класс
C++ Как правильно использовать классы? Как вывести значение класса на экран?
C++ Указатели на функцию - как их использовать, как объявлять
Auto_ptr C++
C++ Auto_ptr для хэндлов
Сократить объявление auto_ptr для вновь создаваемого объекта C++
Передача auto_ptr по ссылке C++
Отличие get() и release() у auto_ptr C++
C++ Как вывести одно значение из массива list? Лучше использовать итератор или как-то по другому?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.02.2012, 22:22     Как использовать auto_ptr? #2
auto_ptr уже не входит в стандарный набор библиотек С++

Цитата Сообщение от Buckstabue Посмотреть сообщение
P.S. да и вообще непонятно зачем объявлять auto_ptr в качестве
элементов данных, ведь есть же ещё ведь, вроде, деструкторы
и чё? деструктор не занимается удаление самого объекта
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
21.02.2012, 22:32  [ТС]     Как использовать auto_ptr? #3
Ясно. А есть ли какие-нибудь стандартные библиотеки для сборки мусора?
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
21.02.2012, 23:26     Как использовать auto_ptr? #4
.net
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
22.02.2012, 01:59     Как использовать auto_ptr? #5
Цитата Сообщение от Buckstabue Посмотреть сообщение
Ищу, ищу, но нигде не могу найти на русском, да и на буржуйском, толковое описание использования auto_ptr. Везде только какие-то сверхсложные для моего понимания конструкции, где один auto_ptr объект ссылается на другой, я так и с обычными указателями, вроде, не работаю. И всякие сложные, там, композиции этих auto_ptr наподобие:
C++
1
2
3
4
5
6
7
8
9
class A
{
   auto_ptr<B> ptr<new B>;
}
 
class B
{
   auto_ptr<A> ptr<new A>
}
И ничего не сказано про самое наибанальное и наираспростаненного использование, например, для сборки мусора в функции, про многомерные массивы, насколько отличается этот тип указателей от обычных, вопросы производительности, подводные камни и т.д.
P.S. да и вообще непонятно зачем объявлять auto_ptr в качестве элементов данных, ведь есть же ещё ведь, вроде, деструкторы
C++
1
2
3
4
5
6
7
8
int main() {
 
    { 
         auto_ptr<int> p(new int(5));
         cout << *p;
    }
    //  в этом участке кода память будет освобождена, потому что обьект р выйдет за область и вызовется конструктор который освободит память, нам не нужно писать delete ...
}
http://www.rsdn.ru/article/cpp/smartptr.xml
Yandex
Объявления
22.02.2012, 01:59     Как использовать auto_ptr?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru