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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчёт количества символов http://www.cyberforum.ru/cpp-beginners/thread918941.html
Здравствуйте, возник вопрос: Почему в функцию не передаётся вся строка, например я пишу "qwerty qwerty" то он не передаёт второй "qwerty" а так же не передаёт пробел. В чём может быть проблема? #include <iostream> #include <iomanip> #include <string.h> using namespace std; const int mass = 1000; void run(char*,int&,int&,int&);
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 itt = temp.begin(); itt != temp.end(); itt++ ) http://www.cyberforum.ru/cpp-beginners/thread918939.html
C++ Зарыть клад
Здраствуйте! Вот задание: Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "North 5", где первое слово – одно из "North", "South", "East", "West", а второе число – количество шагов, необходимое пройти в этом направлении. Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало...
std threading library взамен boost threading library C++
изучаю распараллеливание на примере "примера" с http://www.linux.org.ru/forum/development/4152264 , но там с использованием boost. Так вот хотел было начать задавать умные вопросы, НО! : std::thread_group is not member of std и приехали, ступор. на что мне заменить std::thread_group #include <thread> #include <mutex> #include <vector> int a(int x) {return x*x;} int next_i(int n, int & i,...
C++ Несколько неясностей в C++ http://www.cyberforum.ru/cpp-beginners/thread918929.html
Здравствуйте, в процессе изучения C++ возникли вопросы. 1. Объявления и определения функции. С терминологией и сутью проблем не было. Но никак не пойму, когда используется объявление? Когда сама функция находится в одном файле, а использовать ее нужно в другом? 2. Inline функции. В книге ("C++ Вводный курс" Липпман) сказано "В отличие от других функций, определения встраиваемых функций должны...
C++ Советы начинающему Приветствую всех. Я учусь на специальности "Информационные системы" (перешел на 3 курс). Так вот до изучения c++ дойдем совсем не скоро и я хочу начать учиться уже сейчас. Также интересует сфера создания игр. Читал различные форумы на тему начать с 2d игр или 3d. Большинство говорит без разницы, ибо там все разное, начинайте с чего хотите. После некоторого время раздумий дошло до того что... подробнее

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

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

06.07.2013, 22:57. Просмотров 611. Ответов 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" должен был удалится после первого использования оператора <<?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru