-1
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。

4

1 回答 1

5
both the overloads of `f` can exist?

不,INT 基础类型int因此都f具有相同的函数签名。这打破了 C++

both the overloads of g can exist?

不。数组衰减为指针,因此char [5] [10])转向 char (*) [10]哪些是相同的类型。

函数重载的重要规则是函数具有不同的签名,这需要函数具有不同的参数列表(参数类型或数量)。

请参阅示例代码:链接

于 2013-01-20T08:12:41.370 回答