0
点赞
收藏
分享

微信扫一扫

c++ 函数签名


【例 1】

void f( )
void g( )
void f(int)

【例 2】

void f( int)
void f(double)

【例 3】

void f(double, int)
void f(int, double)

为了理解函数签名的含义,我们先来看一下上面的三个例子:

  • 例 1 中,函数 f() 和函数 g() 的函数名不同,因此这两个函数的函数签名不同。f() 函数和 f(int) 函数一个有参数,一个没有参数,函数签名同样不同。g() 函数和 f(int) 函数函数名不同并且函数参数个数也不同,因此它们的函数签名也是不相同的。
  • 例 2 中,两个函数的函数名相同,参数个数相同,但是参数的类型不同,因此这两个函数的函数签名也不相同。
  • 例 3 中,两个函数的函数名相同,参数个数相同,参数类型也相同,都是一个 double 类型和一个 int 类型。但是,由于函数参数的顺序不相同,这两个函数的函数签名同样是不相同的。
  • 需要注意的是,函数签名并不包含函数返回值部分,如果两个函数仅仅只有函数返回值不同,那么系统是无法区分这两个函数的,此时编译器会提示语法错误。

【例 4】

int f(int, double)
void f(int, double)

  • 在本例中,两个函数的函数名相同,参数个数相同,参数类型相同,参数顺序相同,这两个函数的函数签名就是相同的。虽然两个函数的返回值类型不同,仅凭函数返回值,编译器无法区分这两个函数,编译器提示语法错误。


举报

相关推荐

0 条评论