Its seems like the floating point should be defined by 3 multi-precision integers for the integer portion, decimal portion, and exponent since the integer type seems to reallocate itself as necessary and this would also relieve the restrictions on the precision of the exponent. Also, why aren't the C++ classes implemented as concrete classes?