为什么这个为三种整数类型重载的函数无法编译?
Why does this function overloaded for three integer types fail to compile?
定义一个重载三种大小整数的函数失败了。为什么?
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;
}
编译器告诉我:zz.cpp:98:错误:重新定义' unsigned int hack(unsigned int) '
你的编译器/代码认为byte和unsigned int是一样的…
重载函数的不同之处在于它们的形参计数和/或类型,而不是返回类型。这是三个不同的函数
相关文章:
- 从父命名空间重载类型
- 如何确保接受的C++模板类型使运算符重载?
- 模板化类如何解析在其类型之一上调用的重载非成员函数?
- 错误:表达式必须具有算术、无作用域枚举或带有运算符重载的指针类型
- 泛型枚举和其他类型的重载模板函数
- 避免在人为的重载函数调用中拼写出类型
- 为什么重载运算符可以返回其返回类型以外的其他内容?
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 重载模板函数未为特定类型选择正确的版本
- 如何为流输出运算符提供重载<<模板'using'类型别名?
- MSVC 错误:4 个重载中的任何一个都无法转换所有参数类型
- 具有重载类型转换运算符的函数对象崩溃
- 为什么在指定重载类型的返回值时出现编译错误
- 忽略C++重载类型转换运算符
- 重载 C++ 类型以处理自定义类
- 重载类型强制转换运算符,以强制转换为指向函数的指针
- C++中的一元运算符重载类型(新手)
- 函数不能在模板实例中推导出重载类型
- 重载类型转换运算符的语法
- 重载 C++ 类型转换(函数)