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

Умные указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчёт количества символов http://www.cyberforum.ru/cpp-beginners/thread918941.html
Здравствуйте, возник вопрос: Почему в функцию не передаётся вся строка, например я пишу "qwerty qwerty" то он не передаёт второй "qwerty" а так же не передаёт пробел. В чём может быть проблема? ...
C++ Set <int> Доброе время суток, помогите оптимизировать данный код set < int > temp; temp.insert(1); temp.insert(2); temp.insert(3); temp.insert(4); temp.insert(5); for( set < int > ::iterator... http://www.cyberforum.ru/cpp-beginners/thread918939.html
C++ Зарыть клад
Здраствуйте! Вот задание: Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "North 5", где первое слово – одно из "North", "South",...
std threading library взамен boost threading library C++
изучаю распараллеливание на примере "примера" с http://www.linux.org.ru/forum/development/4152264 , но там с использованием boost. Так вот хотел было начать задавать умные вопросы, НО! :...
C++ Несколько неясностей в C++ http://www.cyberforum.ru/cpp-beginners/thread918929.html
Здравствуйте, в процессе изучения C++ возникли вопросы. 1. Объявления и определения функции. С терминологией и сутью проблем не было. Но никак не пойму, когда используется объявление? Когда сама...
C++ Советы начинающему Приветствую всех. Я учусь на специальности "Информационные системы" (перешел на 3 курс). Так вот до изучения c++ дойдем совсем не скоро и я хочу начать учиться уже сейчас. Также интересует сфера... подробнее

Показать сообщение отдельно
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737

Умные указатели - C++

06.07.2013, 22:57. Просмотров 620. Ответов 7
Метки (Все метки)

Насколько я понял для того что бы предотвратить передачу права владения используют const.
Код из примера:

C++
1
2
3
4
5
6
7
template <class T>
    ostream& operator <<(ostream& strm, const auto_ptr<T>& p)
    {
             if(p.get()==0) {strm<<"Null";}
             else { strm<<*p;}
             return strm;
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    auto_ptr<int> p(new int(42));
    auto_ptr<int> q;
    cout<<"initialization:"<<endl;
    cout<<"p: "<<p<<endl;
    cout<<"q: "<<q<<endl;
    q=p;
    cout<<"p: "<<p<<endl;
    cout<<"q: "<<q<<endl;
    *q+=13;
    p=q;
    cout<<"p: "<<p<<endl;
    cout<<"q: "<<q<<endl;
    
    
}
Но я недосмотрел и сделал без const, полученные результаты сошлись. Почему? ведь "p" должен был удалится после первого использования оператора <<?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru