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

Время жизни временного объекта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какую среду выбрать? http://www.cyberforum.ru/cpp-beginners/thread304866.html
Собираюсь начать изучение C++. Подскажите, какую среду разработки лучше выбрать и почему?
C++ наследование классов Работаю в с++ билдер.. программа вылетает при запуске.. после того, как сделал наследование.. В чем проблема? Как решить? Вот код: //Основной класс class Tell { private: AnsiString a,b; ... http://www.cyberforum.ru/cpp-beginners/thread304858.html
массив C++
Дан одномерный массив, состоящий из N целочисленных элементов 1. Заполнить массив случайными числами. 2. Найти максимальный положительный элемент. 3. Вычислить произведение элементов массива....
Дано целое число K. Найти сумму его цифр C++
сделать в виде цикла помогите(
C++ Создать, используя функциональные объекты и классы-шаблоны списка с датами рождения http://www.cyberforum.ru/cpp-beginners/thread304839.html
Создать, используя функциональные объекты и классы-шаблоны списка с датами рождения
C++ однонаправленные списки Даны простые однонаправленные списки S1, S2, S3. Поместить в S3 одинаковые элементы у списков S1 и S2. подробнее

Показать сообщение отдельно
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255

Время жизни временного объекта - C++

25.05.2011, 20:33. Просмотров 784. Ответов 0
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
std::ostringstream os;
 
std::string* str = &os.str(); //временный объект "живёт" только в этом выражении 
                              // до работы RVO (return value optimization)
std::cout<<*str<<"\n"; //устаревший указатель (вывод (неизвестно), в моём случае - пробелы)
 
 
std::string& str = os.str(); // временный объект живёт, пока используется ссылка на него
std::cout<<str<<"\n";    // в текущем блоке (вывод отрабатывает, как положено)
 
char *s = new char [80];
std::strcpy(s, os.str().c_str()); // временный объект используется в strcpy(),
std::cout<<s<<"\n";              // после чего уничтожается работой RVO (вывод отрабатывает, как положено)
В стандарте C++ для ссылки определено исключение, якобы если на временный объект связана с ссылочной переменной, то его время жизни совпадает со временем жизни ссылочной переменно (с которой он связан) до конца текущего блока?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru