typedef int INT;
1.void f(int x);
2.void f(INT x);
3.g(char (*) [10]);
4.g(char [5] [10]);
的两个重载都f
可以存在!的两个重载都g
可以存在!
我们可以在一个类中重载这些函数吗?作为基类中的 1,3 和派生类中的 2,4。
typedef int INT;
1.void f(int x);
2.void f(INT x);
3.g(char (*) [10]);
4.g(char [5] [10]);
的两个重载都f
可以存在!的两个重载都g
可以存在!
我们可以在一个类中重载这些函数吗?作为基类中的 1,3 和派生类中的 2,4。
both the overloads of `f` can exist?
不,INT 基础类型int
因此都f
具有相同的函数签名。这打破了 C++
both the overloads of g can exist?
不。数组衰减为指针,因此char [5] [10])
转向 char (*) [10]
哪些是相同的类型。
函数重载的重要规则是函数具有不同的签名,这需要函数具有不同的参数列表(参数类型或数量)。
请参阅示例代码:链接