在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 versionfunc(s); // calls the short versonfunc(int(5)); // 可能优化为shortint num = 5;func(num); // 确定的类型
}