1)You can have multiple definitions for the same function name in the same scope
2)The definition of the function must differ from each other by thetypes and/or the number of arguments in the argument list. ( 3)You can not overload function declarations that differ only by returntype.
I find 2 and 3 statements confusing , in second it mentions that they may have diff return values but in 3 statement it says you can not overload by same return typ. what does this mean please elaborate