Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

BigInt Display and operator+ functions

$
0
0
Hello! I am implementing a code for BigInt class and I am having troubles displaying the object (everything prints reversed). Also, is my operator+ function okay? Thanks!

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;
    }


Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>