Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

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

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

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

нужен более менее боевой пример, пожалуйста, держи.
он простой, но в принципе такой встретить реально
http://ideone.com/BXrjDG
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 17.04.2016, 16: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 в 16:26. Причина: поправил тэг
RAFA91 вне форума
Старый 17.04.2016, 16:25   #26
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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

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

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

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

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

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

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

что лишнее ?

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

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

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

почему ?

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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