Функция отображения BigInt

Я реализую код для класса BigInt, и у меня возникают проблемы с отображением объекта. Я не уверен, что я делаю неправильно, но мой результат полностью изменен. Пожалуйста помоги!

BigInt.h

#include <iostream>
using namespace std;
using std::cout;

#ifndef BIGINT_H
#define BIGINT_H

class BigInt
{
//input and output operators
friend istream & operator >> (istream &, BigInt &);
friend ostream & operator << (ostream &, const BigInt &);

public:
BigInt(); //default constructor
BigInt(int); //initializes array with user-specified numbers

BigInt operator + (BigInt &);

void display(); //prints array

private:
static const int CAPACITY = 40;
int Digits[CAPACITY]; //stores all digits
};
#endif

BigInt.cpp

#include <iostream>
#include "BigInt.h"using std::cout;

BigInt::BigInt()
{
for (int i = 0; i < CAPACITY; i++)
Digits[i] = 0;
}

BigInt::BigInt(int InitNum)
{
//Inputs the individual numbers given to BigInt into the Digits array's elements
for(int i = 0; i < CAPACITY; i++)
{
if(InitNum > 0)
{
Digits[i] = InitNum%10;
InitNum = InitNum/10;
}
else
Digits[i]=0;
}
}

//------------------------------------------------------------------
BigInt BigInt::operator +(BigInt & a)
{
for(int i = CAPACITY - 1; i >= CAPACITY; i--)
Digits[i]+=a.Digits[i];
}

//-----------------------------------------------------------------
ostream & operator << (ostream & cout, const BigInt& a)
{
for(int i=0; i< a.CAPACITY ; i++)
cout << a.Digits[i];
return cout;
}

istream & operator >> (istream & cin,  BigInt& a)
{
for(int i = 0; i < a.CAPACITY; ++i)
cin >> a.Digits[i];

return cin;
}

//---------------------------------------------------------------
void BigInt::display()
{
for(int i = 0; i< CAPACITY; i++)
cout << Digits[i];

cout << "\n";
}

main.cpp

#include <iostream>
#include <cstdlib>
#include <fstream>
#include "BigInt.h"
int main()
{
BigInt object1(45756369);
BigInt object2(47435892);

object1.display();
object2.display();

BigInt object3 = object1 + object2;

cout << object3;

return 0;
}

Спасибо!
Кроме того, оператор + функция в порядке?

1

Решение

Вы переводите свои цифры в обратном порядке в конструкторе. Num% 10 даст вам последнюю цифру … Вам нужно изменить массив, когда вы закончите заполнять его в конструкторе.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]