所以基本上我正在做的是将一个结构数组从一个函数传递给另一个函数。它适用于show函数,但不适用于max函数:/我到底做错了什么?
void show( const ABC & x ){
cout<<"{"<<x.n<<",'"<<x.c<<"',{"<<x.a[0]<<","<<x.a[1]<<","<<x.a[2]<<"}}";
}
void show( const ABC arr[], unsigned elements ){
for(unsigned i=0; i<elements; i++)
show(arr[i]);
}
以下不起作用
double max( const ABC & x ){
double max=x.a[2];
if(x.a[1]>max)
max=x.a[1];
if(x.a[0]>max)
max=x.a[0];
return max;
}
double max( const ABC arr[], unsigned elements ){
double max=arr[2].a[3];
for(unsigned i=0; i<elements; i++)
if(max<max(arr[i])){
max=max(arr[i]);
}
return max;
}
答案 0 :(得分:3)
将double
变量重命名为max
以外的其他变量。事实上,它隐藏了共享相同名称的函数,因此调用表达式无效的原因(您试图将参数传递给double
)。