У меня есть два метода:
bigint& bigint::operator=(const bigint& b){
init();
for(int i = N-1; i >= N - b.getLength(); i--){
un[i] = b.un[i];
}
setLength(b.getLength());
return *this;
}
void bigint::init(){
int L = getLength();
for(int i = 0; i < L; i++){
un[N-L+i] = 0;
}
setLength(1);
}
Первый называется operator=
в коде, который присваивает значение b
в *this
,
Учебный класс bigint
представляет большие целые числа максимальной длины = N. Экземпляр bigint
содержит массив длины, равный N
,
В чем моя проблема:
Я не могу определить, почему вызов метода init()
, который обнуляет каждый элемент *this
, влияет и на параметр b
,
Кажется, что нули также b
,
Когда я удаляю init()
звонит из operator=
метод, b
не изменяется, но мне нужно обнулить bigint *this
прежде чем присвоить ему какое-то значение.
Я не понимаю, что на самом деле происходит.
Спасибо за любую помощь.
Задача ещё не решена.
Других решений пока нет …