Question
Processes nonnegative integers of any magnitude. To that end, implement a class HugeInt with constructors and overloaded operators as indicated below:
class HugeInt {
public:
HugeInt(const char*);
HugeInt(int);
HugeInt(HugeInt&);
~HugeInt();
HugeInt operator+ (const HugeInt&) const;
HugeInt operator+=(const HugeInt&);
HugeInt operator++();
HugeInt operator++(int);
bool operator==(const HugeInt&) const;
bool operator< (const HugeInt&) const;
private:
char *value;
friend ostream& operator<<(ostream&, const HugeInt&);
};
Solution Preview
This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.
HugeInt::HugeInt(const char* n){if (n == NULL) {
value = NULL;
}else{
char * v = reversedValue(n);
//cout<<v<<"\n";
int len = strlen(v);
value = new char[len];
for (int i = 0; i < len; i++) {
value[i] = v[i];
}
value[len] = '\0';
// cout<<"value "<<value<<"\n";
}
}
HugeInt::HugeInt(int n) {
value = Int2Chars(n);
}
HugeInt::HugeInt(const HugeInt& o) {
char * n = o.value;
if (n == NULL) {
value = NULL;
}else {
int len = strlen(n);
value = new char[len];
for (int i = 0; i < len; i++) {
value[i] = n[i];
}
value[len] = '\0';
}
}...