下面这句话什么意思,举个例子呗。 c++中只能定义一次缺省值,即原型说明时定义了缺省值,后面的函数
答案:3 悬赏:40 手机版
解决时间 2021-02-27 13:50
- 提问者网友:却不属于对方
- 2021-02-27 05:28
下面这句话什么意思,举个例子呗。 c++中只能定义一次缺省值,即原型说明时定义了缺省值,后面的函数定义不能有缺省值。
最佳答案
- 五星知识达人网友:孤老序
- 2021-02-27 06:17
比如:
函数声明f(int i=5);定义了缺省值。
后面对f的函数定义时就不需要提供缺省值了:
f(int i){cout<<i<<endl;}
即函数定义不能写成:f(int i=5){cout<<i<<endl;}
为什么是这样呢?
一方面是因为编译器在编译时遇到f的函数调用只去检查函数声明,至于函数有没有实现则是链接阶段的事,如果没有函数实现则链接出错,编译仍正确,只要函数声明与函数调用一致!
另一方面是因为在函数定义时如果也允许提缺省值,那么如果函数定义的缺省值与函数声明的缺省值不一样怎么办?比如f声明时缺省值为5,定义时缺省值为6,这就会出现歧义。
所以,标准会如此规定!
函数声明f(int i=5);定义了缺省值。
后面对f的函数定义时就不需要提供缺省值了:
f(int i){cout<<i<<endl;}
即函数定义不能写成:f(int i=5){cout<<i<<endl;}
为什么是这样呢?
一方面是因为编译器在编译时遇到f的函数调用只去检查函数声明,至于函数有没有实现则是链接阶段的事,如果没有函数实现则链接出错,编译仍正确,只要函数声明与函数调用一致!
另一方面是因为在函数定义时如果也允许提缺省值,那么如果函数定义的缺省值与函数声明的缺省值不一样怎么办?比如f声明时缺省值为5,定义时缺省值为6,这就会出现歧义。
所以,标准会如此规定!
全部回答
- 1楼网友:狂恋
- 2021-02-27 08:12
原型说明他的意思应该是函数声明,而函数声明的形参可以只有类型而没有名字如:int print(int);
函数的定义就要带有名字了:int print(int i){函数体内容};
只要明白 声明 与 定义 的区别就可以了。
- 2楼网友:愁杀梦里人
- 2021-02-27 06:59
不是已经说很明白了吗?缺省值只能定义一次……
再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯