在使用结构时,表达式必须具有(指针到)函数类型

时间:2012-09-01 23:14:02

标签: c++ arrays function pointers struct

所以基本上我正在做的是将一个结构数组从一个函数传递给另一个函数。它适用于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;
}

1 个答案:

答案 0 :(得分:3)

double变量重命名为max以外的其他变量。事实上,它隐藏了共享相同名称的函数,因此调用表达式无效的原因(您试图将参数传递给double)。