我在返回结构时遇到问题。
我创建了一个函数 currentPeriodCharges ,它会执行一些计算并返回结果以供在另一个函数中使用。
其中一个错误包括:不能重载仅由返回类型区分的函数
有什么想法吗?
这是结构:
typedef struct{
float cpCharges[3];
int cUsage[2];
}mystruct;
这是功能:
mystruct currentPeriodCharges (char a,int b,float c){
mystruct retVal;
int c=100;
if(a=='C'||a=='c'){
retVal.cpCharges[2]=b*rate[1];
retVal.cUsage[0]=0;
retVal.cUsage[1]=0;
retVal.cpCharges[0]=0;
retVal.cpCharges[1]=0;
return retVal;
}
else{
if(a=='R'||a=='r'){
if(b<100){
retVal.cpCharges[2]=b*rate[0];
retVal.cUsage[0]=0;
retVal.cUsage[1]=0;
retVal.cpCharges[0]=0;
retVal.cpCharges[1]=0;
return retVal;
}
else{
if(b>100){
retVal.cUsage[0]=c;
retVal.cUsage[1]=b-retVal.cUsage[0];
retVal.cpCharges[0]=retVal.cUsage[0]*rate[0];
retVal.cpCharges[1]=retVal.cUsage[1]*rate[1];
return retVal;
}
}
}
}
};
答案 0 :(得分:1)
第二个错误:
'mystruct':重新定义;使用typedef
不能重载符号
在这里更有意义。真正的问题必须在线之前
mystruct currentPeriodCharges (char a,int b,float c)
。
在大多数情况下,只是缺少分号,但在该行之前可能出现任何错误。
答案 1 :(得分:0)
(我还没有足够的声誉发表评论,所以这是一个“答案”)
我认为我们需要看到更多此代码。
我也很好奇为什么我们没有看到报告的
错误Error 1 error C2082: redefinition of formal parameter 'c'
其中parm float c
位于函数标题中,int c=100;
位于文本正文中