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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2012, 19:04   #1
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
Восклицание возвращение экзэипляра объекта из функции(дружественной, к примеру)

Есть класс(привожу лишь малую часть)
Код:
class Sequences {
public:
	~Sequences();

	Sequences& operator=(const Sequences& seq);
	friend Sequences operator+(const Sequences& seq, const int& val);
}
так вот, оператор + некорректно возвращает объект(с += все нормально, эт про ипользование в функции).
Код:
Sequences operator+(const Sequences& seq, const int& val) {
	Sequences temp(seq);
	temp += val;

	return temp;
};
используется это так
Код:
seq = seq+1
Так вот, прежде чем выполнить присваивание, у созданного выше объекта temp срабатывает деструктор..Что делать то?

ЗЫ
Причем, как я заметил(в других проЭктах моих) такая ситуация ничего некорректного не вызывает..т.е в некоторых сталкиваюсь с такой ситуацией, в некоторых нет...
monolit111 вне форума Ответить с цитированием
Старый 06.10.2012, 20:54   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Не волнуйтесь, *до* того, как сработает деструктор у temp объекта вызовется copy конструктор для объекта, который вернет функция.
waleri вне форума Ответить с цитированием
Старый 06.10.2012, 21:21   #3
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
По умолчанию

Да, верно, косяк был в операторе присваивания...
Спасибо.
monolit111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возвращение из функции указателя на двумерный массив _J_ Общие вопросы C/C++ 2 29.12.2011 01:34
Перегрузка оператора с использованием дружественной функции KEIego Общие вопросы C/C++ 5 23.12.2010 15:41
возвращение функции значения TStringSream Lokos Общие вопросы Delphi 6 24.11.2010 12:42
Возвращение двухмерного массива из функции Exeil Общие вопросы C/C++ 11 24.10.2010 12:41
Возвращение объекта из функции класса atenon Общие вопросы C/C++ 9 19.05.2010 03:24