@Mr-Governor
Губернирую

Как устранить утечку?

Я просто изучаю С++, и читаю сейчас про перегрузку операторов. Но вот решил сделать операцию сложения и понял, что создавая третий результатный объект у меня просто теряется. Думал как то через конструктор копии решить проблему, вообщем запутался, ни че не понимаю вот код, помогите:

#include <iostream>
using namespace std;

class obj
{
	int a;
public:
	void show() {cout<<a<<endl;}
	obj(){a=5;}
	obj(int i){a = i;}

	obj operator+(obj xa) //Этот опер-р отдает новый объект, с суммой двух предыдущих.
	{
		return *new obj (this->a + xa.a);
	}
};

int main()
{
setlocale(0,"");
	obj one, two;
	(one + two).show(); Вот он тут отображает результат и просто теряется.
system("pause");
return 0;
}


Как обычно борятся с такими .. мм . в таких ситуациях ??
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
return *new obj (this->a + xa.a);

Заменить на
return obj (this->a + xa.a);

P.S. с исключениями-то разобрался?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы