在c++中,int和short可以作为参数来重载函数的,因为他们是不同类型。函数重载是基于参数的类型或数量不同来区分的。
但需要注意的是,虽然 Int 和 short 是不同的类型,但如果传入的值是一个小整数字面量(如func(5)),编译器可能会将其优化为short
,导致问题。所以最好定义确定的类型,再赋值。
void func(int x)
{}
void func(short x)
{}
int main()
{
int i = 10;
short s = 5;
func(i); // calls the int version
func(s); // calls the short verson
func(int(5)); // 可能优化为short
int num = 5;
func(num); // 确定的类型
}