C++ BigInt显示功能

C++ BigInt显示功能,c++,bigint,C++,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 >>

我正在为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;
}
谢谢!
另外,操作员+功能正常吗

您正在将数字反向放入构造函数Num%10将为您提供最后一个数字。。。在构造函数中填充完数组后,需要反转数组