CPP Overloading
[CPP operator overloading](https://texonom.com/cpp-operator-overloading-ea59a048370340668bc23f94017b9f26) 


1. looks for exact signature
> 1. Where no argument conversion required
2. looks for "compatible" signature
> 1. Looks for "compatible" signature where automatic type conversion is possible
>> 1. 1st with promotion (No loss of data)
>> 2. 2nd with demotion (Possible loss of data)
recommended just implement using double to avoid confusing









