一、定义
1.1 C++支持在同一作用域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同、顺序不同或者类型不同。这样C++函数调用就表现出了多态行为,使用更灵活。C语言是不支持同一作用域中出现同名函数的。
1.2 而不同域出现的同名函数时,一般是不同命名空间里面的同名函数。但是如果同时展开同名函数并使用时,也需要保证这些同名函数的形参不同从而构成重构函数,或者指定展开使用,不然会出现调用歧义。
改正如下:指定命名空间展开
1.3 返回值不作为评判函数重载的标准
二、使用注意
2.1尽量避免依赖于隐式类型转换来区分不同的函数版本,应该通过参数的明确类型来清晰地定义函数,从而减少潜在的混淆和错误。
2.2满足定义,构成函数重载,但是出现了调用歧义