标题:重载冲突问题
只看楼主
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
 问题点数:0 回复次数:7 
重载冲突问题
我定义了两个函数
double Short_File_Pnsr(char const *fpath1,char const *fpath2);与
double Short_File_Pnsr(char const *fpath1,char const *fpath2,int planValue = 0);
并声明
extern double Short_File_Pnsr(char const *fpath1,char const *fpath2);与
extern double Short_File_Pnsr(char const *fpath1,char const *fpath2,int planValue = 0);
在使用Short_File_Pnsr(“pre.raw”,"post.raw");进行调用,有个错误是重载冲突
把第二个函数声明的默认值去掉成为
extern double Short_File_Pnsr(char const *fpath1,char const *fpath2,int planValue);后(定义保持不变),再编译这个错误就消失
我有个疑问,难道函数的形势以声明为准吗?
搜索更多相关主题的帖子: 声明 定义 重载 冲突 
2008-06-15 18:49
xunxunmimi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-12
得分:0 
不知道“难道函数的形势以声明为准吗?”这句话什么意思

可以将一个Short_File_Pnsr函数改名

一个函数不能:既作为重载函数,又作为有默认参数的函数
2008-06-16 11:20
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
回复 2# xunxunmimi 的帖子
可以吧,只是这里有冲突而已,如我把另一个函数的参数个数修改了 就不会有冲突了
2008-06-17 00:37
itfate
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-8-9
得分:0 
你函数的默认值错了...
有3个参数时,当第三个参数设成默认值时,必需第2个必需也设有默认值....
2008-08-09 18:32
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
回复 4# itfate 的帖子
恩 其实就是带有一个默认值的三个参数的函数和 两个参数的函数由冲突
2008-08-22 16:25
yi1018
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2008-7-25
得分:0 
回复 5# vfdff 的帖子
你知道是怎么回事对吧!!!可是有时还是会出现这种情况。

Don't repeat yourself !!!
2008-08-23 14:49
scauhj
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-4-15
得分:0 
当重载时,第二个函数中第三个参数为默认,编译器寻找的时候就会出现二义性,所以会出现那种情况。你在使用第二个函数时可以显式Short_File_Pnsr(“pre.raw”,"post.raw",0)不就行咯
2008-08-25 22:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-219320-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074507 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved