为什么这个函数重载三个整数类型无法编译?

时间:2011-09-22 22:45:33

标签: c++ compiler-errors overloading

这种为三种大小的整数定义重载函数的尝试失败了。为什么呢?

byte hack(byte x)
{
   return x+1;
}

unsigned short hack(unsigned short x)
{
   return x+2;
}

unsigned int hack(unsigned int x)
{
   return x+3;
}

编译器告诉我:     zzz.cpp:98:错误:重新定义'unsigned int hack(unsigned int)'     zzz.cpp:88:错误:此处先前定义的'byte hack(byte)'

2 个答案:

答案 0 :(得分:9)

你的编译器/代码认为 byte unsigned int 是一样的......

答案 1 :(得分:0)

重载函数的不同之处仅在于它们的参数计数和/或类型,而不是返回类型。所以,这些是三个不同的功能。