Хорошо, я гуглил эту проблему и искал переполнение стека, но не могу найти хорошего ответа. Итак, я задаю здесь вопрос, который имеет отношение к моей проблеме. Если это простой ответ, пожалуйста, будьте любезны, я новичок в этом языке. Вот моя проблема:
Я пытаюсь написать метод для класса C ++, который перегружает оператор. Я хочу вернуть копию измененного экземпляра, но не сам экземпляр. Для простоты примера я буду использовать класс BigInt
, чтобы продемонстрировать проблему, с которой я столкнулся.
Если бы у меня был следующий код:
const BigInt & operator+() const //returns a positive of the number
{
BigInt returnValue = *this; //this is where I THINK the problem is
returnValue.makepositve(); //for examples sake
return returnValue;
}
Я получаю сообщение об ошибке, что возвращаемое значение может быть создано в стеке. Я знаю, что это означает, что мне нужно создать объект в куче и вернуть ссылку. Но если бы я изменил строку 3 rd на что-то вроде:
BigInt & returnValue = *this;
Я получаю сообщение о том, что синтаксис неверен. Я не совсем уверен, что делать, любая помощь очень ценится!