Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 17.04.2016, 16:46   #21
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,940
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
прикинь, это:
Код:
v = foo();
называется expression statement

Ну раз просто и без примеров, то так:
если аргумент rvalue (ну или xvalue в конце жизни) и есть соответствующий функционал,
то будет вызвана соответствующая версия оператора. Понятнее?
Хватит веселить. Я уже и так патсталом.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума  
Старый 17.04.2016, 16:48   #22
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
а оператор перемещения разве служит что-бы что-то выводить на экран или
у него есть более адекватное применение.
а причем здесь это?
там пример реализации и там же пример вызова, не более того.
или вам нужен пример с нагрузкой?

PS: я удалил последнюю строчку, и что больше не видел.
как задали вопрос так и получили ответ.
если вам нужен именно практический пример их применения, то так и скажите.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума  
Старый 17.04.2016, 17:00   #23
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,940
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Совместимые со стандартом C++И компиляторы гарантируют, что для временных объектов (r-значений) используется конструктор перемещения, а не конструктор копий, и оператор присваивания при перемещении вместо оператора присвоения копии.
Шо? Офигеть! Это новая концепция?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума  
Старый 17.04.2016, 17:08   #24
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

нужен более менее боевой пример, пожалуйста, держи.
он простой, но в принципе такой встретить реально
http://ideone.com/BXrjDG
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума  
Старый 17.04.2016, 17:20   #25
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

пускай за основу будет это

Код:
#include <iostream>
#include <cstring>
using namespace std;
class String
{
	char *buffer;
	public:
	String() 
	{
		buffer = new char[1]; 
		buffer[0] = '\0';
	}
	String(const char *str) 
	{
		buffer = new char[strlen(str)+1]; 
		strcpy(buffer,str);
	}
	String(const String &s) 
	{
		buffer = new char[strlen(s.buffer)+1]; 
		strcpy(buffer,s.buffer);
	}
	const char * get() const {return buffer;}
	~String() 
	{
		delete [] buffer; 
		buffer = NULL;
	} 
		String & operator = (const String &s) 
	{
		if (this == &s) return *this;
		delete [] buffer;
		buffer = new char[strlen(s.buffer)+1]; 
		strcpy(buffer,s.buffer);
		return *this;
	}
	
};

Последний раз редактировалось Пепел Феникса; 17.04.2016 в 17:26. Причина: поправил тэг
RAFA91 вне форума  
Старый 17.04.2016, 17:25   #26
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

мой пример почти аналогичен, по сути разница в том что мой пример хранит размер.
+ я поправил его, а то в нем утечка была.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума  
Старый 17.04.2016, 17:44   #27
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

теперь собственно анализ

создаем обьект String s1;

вызываем функцию func();

вызывается копировщик.

теперь если написать s1 = func();

вызывается копировщик + оператор =

что лишнее ?

Код:
String func()
{
	String s1 = "AAAAAAAAAAAAAAA";
	return s1;
}
RAFA91 вне форума  
Старый 17.04.2016, 17:49   #28
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,032
По умолчанию

Ничего. Что написали, то и получили.
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума  
Старый 17.04.2016, 17:50   #29
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

в онлайн компиляторе во втором случае сразу идет вызов оператора =

почему ?

http://ideone.com/1CZ07G
RAFA91 вне форума  
Старый 17.04.2016, 17:51   #30
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

Цитата:
почему ?
оптимизация прошла.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 18:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 13:50
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 11:24


01:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.