永发信息网

C++ 函数签名有两个括号是什么意思?

答案:1  悬赏:0  手机版
解决时间 2021-01-29 15:39
  • 提问者网友:骑士
  • 2021-01-29 09:48
C++ 函数签名有两个括号是什么意思?
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-01-29 10:27
参数就是函数传入的初始变量值,比如int func(int a); 其中a就是参数,此时叫形式参数,只是表明参数的类型。当你调用时,比如func(1);这个1就是个实际参数,表明把1作为func的参数自变量就是所谓的默认参数。当一个函数你使用的时候,可能要传不同的值,但是你还要有个默认值,就是没有参数的时候也用这个值。
  比如一个函数计算圆的周长,para表示圆周率,默认用3.14,但是有时候你可能要精确计算,就要让para=3.1415926, int func(int a,int para= 3.14)这样,当你使用的时候,如果不给para赋值,只写func(3),那么实际上编译器写进去的就是func(3,3.14)当你需要用其他值的时候自行传入。但有一点需要注意的是,当你有多个默认参数的时候,函数只支持从右往左的默认参数,比如int func(int a,int b=1,int c=2);这样是可以的,但是int func(int a=1,int b,int c=2)就不行了,这和参数入栈顺序有关。
  所以要写默认参数,就要放在最右边 函数签名就是编译器给函数的一个标签,就好像是你买食品上的配方一样。比如 int func(int a,int b); 编译器不关心a和b,他俩只是个代号而已,只关心函数的返回类型和参数类型,所以函数签名编译器就写成了int func(int,int); 这个在C++里面主要和函数重载有关系,当你的函数名相同时,只要函数签名不同编译器就认为你重载了函数,就不会报错,同样签名函数的两个函数会被报错。追问这个回答虽然也让我学习了一下,不过不是我的问题啊,我的问题就是
bool operator() (XXX),有两个括号,前一个无参,后一个有参,这个是什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯