重载函数的地址

在没有参数的情况下使用函数名称将返回该函数的地址。 例如:

int Func( int i, int j );
int Func( long l );

...

int (*pFunc) ( int, int ) = Func;

在前面的示例中,选择了 Func 的第一个版本,然后将其地址复制到 pFunc 中。

编译器使用参数列表查找与目标的参数完全匹配的函数,从而确定要选择的函数的版本。 重载函数声明中的参数与以下项之一匹配:

  • 要初始化的对像(如前面的示例所示)

  • 赋值语句的左侧

  • 函数的形参

  • 用户定义的运算符的形参

  • 函数返回类型

如果未找到完全匹配项,采用函数地址的表达式将不明确并会产生错误。

请注意,尽管前面的示例中使用了非成员函数 Func,但当采用重载成员函数的地址时,仍将应用相同的规则。

请参见

参考

重载