CSCI204/MCS9204/CSCI804 Object and Generic Programming in C++ Laboratory Exercise 4 (Week 6)
Task: Overloading operators We will reuse some definitions and implementations of the class BigInteger defined in the lab 3 for this task. Define the class BigInteger in a file BigInteger.h and implement its member functions in a file BigInteger.cpp that can be used to store a large positive integer. The class contains two data members: a pointer of short integer and the size of the dynamic short integer array. Define the following member functions: • The default constructor; • An initialization constructor initializes a BigInteger instance with a char array, in which all elements are decimal digits. • The copy constructor makes a deep copy from a BigInteger instance. • The destructor; • Define insertion operator and extraction operator for the class. • Define assignment operator for the class that makes a deep copy from a BigInteger object. • Define addition operator that returns a BigInteger object of addition result. Do not change the operands. • Define multiplication operator for the class that returns a BigInteger object of multiplication result. Do not change the operands. • Define comparison operator “equals to” that returns the value “true” if two BigInteger objects contain the same values. Write the driver program include main function in a file lab4Main.cpp to declare instances of BigInteger, test all the overloading operators defined above. Be careful not to submit the solutions for the lab 4 task. Compile the files by g++ –o task4 lab4Main.cpp BigInteger.cpp And execute it. Your program should be run like the following example (Red data means input from keyboard) ./task4 Input a big integer for bi1: 567239745104730482394650169432 Input a big integer for bi2: 882323456205024318310561095 Initial bi3=1234567890 bi3 = bi1 + bi2 = 568122068560935506712960730527 bi3 = bi1 * bi2 = 500488932397662823233748695498247943120741026136737448040 bi1 is not equal to bi2 bi3 = bi2 = 882323456205024318310561095 bi3 is equal to bi2