crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Изменение значения возвращаемого из функции
Гость_Quester_*
сообщение 2.6.2017, 20:37
Сообщение #1





Гости








    


Добрый вечер, ребята! Объясните пожалуйста, как такое работает:

...
std::string getStr(){
   reutrn "hello";
}

int main(){

   getStr() = "World!";
...


Из функции "getStr()" вернется временная переменная, скажите пожалуйста, разве можно изменять значение временной переменной? И насколько это корректно??

Спасибо!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 3.6.2017, 20:22
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


"работает" это так

1) getStr() возвращает объект класса std::string (безымянный, но назовём его, скажем, S). S содержит значение "hello"

2) вызывается оператор = объекта S , присваивается значение "Wolrd"
3) (getStr() = "Wolrd") возвращает ссылку на S
4) S выводится в поток
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.2.2025, 21:32