operator overloading version2 complete, fixed bug and consider zero division and flags