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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Какую среду выбрать? http://www.cyberforum.ru/cpp-beginners/thread304866.html
Собираюсь начать изучение C++. Подскажите, какую среду разработки лучше выбрать и почему?
C++ наследование классов Работаю в с++ билдер.. программа вылетает при запуске.. после того, как сделал наследование.. В чем проблема? Как решить? Вот код: //Основной класс class Tell { private: AnsiString a,b; double x,y,memory; int number; http://www.cyberforum.ru/cpp-beginners/thread304858.html
массив C++
Дан одномерный массив, состоящий из N целочисленных элементов 1. Заполнить массив случайными числами. 2. Найти максимальный положительный элемент. 3. Вычислить произведение элементов массива. 4. Вывести положительные элементы на экран
Дано целое число 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
25.05.2011, 20:33     Время жизни временного объекта
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++ для ссылки определено исключение, якобы если на временный объект связана с ссылочной переменной, то его время жизни совпадает со временем жизни ссылочной переменно (с которой он связан) до конца текущего блока?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru