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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 20.04.2016, 17:06   #41
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Что-то объяснять бестолку - как об стенку.
Такой особый вид толстолобиков ой, ржу как конь
Чуть под стол не уполз )))
Croessmah вне форума
Старый 20.04.2016, 17:08   #42
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

повторюсь

как правильно написать это


Код:

Код:
String & operator = (String &&s)
    {
    	cout << "operator move = "<<this<<" "<<&s<<endl;
		if (this == &s) return *this;
		delete [] buffer;
		buffer = new char[strlen(s.buffer)+1]; 
		strcpy(buffer,s.buffer);
		return *this;
    }

	String(String && s)  
    {
		cout << "Constructor copy move "<<this<<" "<<&s<<endl;
		buffer = new char[strlen(s.buffer)+1]; 
		strcpy(buffer,s.buffer);
	}
Цитата:
Сообщение от p51x Посмотреть сообщение
Вы открыли для себя,
даже не пытался. достаточно того что работает

Последний раз редактировалось RAFA91; 20.04.2016 в 17:10.
RAFA91 вне форума
Старый 20.04.2016, 17:12   #43
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Тупо захапайте буфер переданного объекта и всё,
не нужно коприровать символы и выделять память.
Код:
//очистка объекта
buffer = s.buffer;
s.buffer = nullptr;
//...
Croessmah вне форума
Старый 20.04.2016, 17:13   #44
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Тупо захапайте буфер[/CODE]
мне не надо тупо, мне надо правильно

на то он и копировщик что-бы копировать.
RAFA91 вне форума
Старый 20.04.2016, 17:18   #45
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
на то он и копировщик что-бы копировать
Ну вот пусть копирующий конструктор и копирующий оператор присваивания копируют,
а перемещающие версии - захватывают ресурсы у объекта в своё владение.
Croessmah вне форума
Старый 20.04.2016, 17:20   #46
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

оператор = перемещения вызывается только после копировщика перемещения ?
RAFA91 вне форума
Старый 20.04.2016, 17:24   #47
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Для ответа на этот вопрос Вам нужно разобраться с тем,
что такое инициализация и что такое присваивание.
И в чем их отличие. Разобраться - значит изучить,
а не у Либерти страничку прочитать.
Croessmah вне форума
Старый 20.04.2016, 17:27   #48
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

вы сейчас сказали не о чем

.что такое инициализация и что такое присваивание.

я про это не спрашивал.

завидуйте Либерти тихонько.

повторюсь

как правильно написать это


Код:
Код:

Код:

String & operator = (String &&s)
    {
    	cout << "operator move = "<<this<<" "<<&s<<endl;
		if (this == &s) return *this;
		delete [] buffer;
		buffer = new char[strlen(s.buffer)+1]; 
		strcpy(buffer,s.buffer);
		return *this;
    }

	String(String && s)  
    {
		cout << "Constructor copy move "<<this<<" "<<&s<<endl;
		buffer = new char[strlen(s.buffer)+1]; 
		strcpy(buffer,s.buffer);
	}

nullptr; не надо

только 0 или нуль
RAFA91 вне форума
Старый 20.04.2016, 17:33   #49
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Не спрашивали, но в силу того, что Вы об этом
ни хрена не знаете, объяснять дальше бестолку.
Сейчас это выглядит так:
- Хочу водительские права
- Учите ПДД для начала.
- На хрен мне ПДД, я про них не спрашивал. Хочу права )))

Я так понимаю, Вы поклоняетесь Либерти,
поставили во дворе его идол и жертвы приносите?
Поэтому и разобраться не можете -Либерти в мыслях

Последний раз редактировалось Alex11223; 20.04.2016 в 17:36.
Croessmah вне форума
Старый 21.04.2016, 12:47   #50
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

если в конструкторе копирования перемещения взять указатель с временного

обьекта , а потом его во временном обьекте обнулить. ?
RAFA91 вне форума
Закрытая тема


Купить рекламу на форуме - 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