【问题标题】:'(' for function-style cast or construction type Xcode error'(' 用于函数样式转换或构造类型 Xcode 错误
【发布时间】:2015-11-17 01:57:51
【问题描述】:
This is where I get error:
 calcScore(double score1,double score2, double score3, double score4, double score5);

这是我的代码,我不知道如何修复错误;我不确定错误是什么意思。我试过看教科书和网上的例子,但我还是很困惑;这是我们必须使用函数的第一个任务

#include <iostream>
using namespace std;

void getJudgesData();
void calcScore();

int main()
{
    double scoreAverage=-9;
    double score1=-9.0;
    double score2=-9.0;
    double score3=-9.0;
    double score4=-9.0;
    double score5=-9.0;

    getJudgesData();

    calcScore(double score1,double score2, double score3, double score4, double score5);

    return 0;
}

 // getJudgesData Program
void getJudgesData(double &score1, double &score2, double &score3, double &score4, double &score5)
{

    do
    {
        cout << "Enter judges score: ";
        cin >> score1;
        do
        {
            if (score1 < 0 || score1 >10)
            {
                cout << "Score has to range from 0-10 \n";
                cout << "Please enter a valid score: ";
                cin >> score1;
            }
        }while (score1<0 || score1 >10);
   }
    while (score1<0 || score1 >10);

    do
    {
        cout << "Enter judges score: ";
        cin >> score2;
        do
        {
            if (score2 < 0 || score2 >10)
            {
                cout << "Score has to range from 0-10 \n";
                cout<< "Please enter a valid score: ";
                cin >> score2;
            }
        }while (score2 <0 || score2 >10);
    }
    while (score2<0 || score2 >10);

    do
    {
        cout << "Enter judges score: ";
        cin >> score3;
        do
        {
            if (score3 < 0 || score3 >10)
           {
                cout << "Score has to range from 0-10 \n";
                cout << "Please enter a valid score: ";
                cin >> score3;
            }
        }while (score3 < 0 || score3 >10);
    }
    while (score3<0 || score3 >10);

    do
    {
        cout << "Enter judges score: ";
        cin >> score4;
        do
        {
            if (score4 < 0 || score4 >10)
            {
                cout << "Score has to range from 0-10 \n";
                cout << "Please enter a valid score: ";
                cin >> score4;
            }
        }while (score4 < 0 || score4 >10);
    }
    while (score4<0 || score4 >10);

    do
    {
        cout << "Enter judges score: ";
        cin >> score5;
        do
        {
            if (score5 < 0 || score5 >10)
            {
                cout << "Score has to range from 0-10 \n";
                cout << "Please enter a valid score: ";
                cin >> score5;
            }
        }while (score5 < 0 || score5 >10);
    }
    while (score5<0 || score5 >10);

    return;
}

//Start of calcScore
void calcScore( double score1, double score2, double score3, double score4,double score5)
{
    double average;

    average = (score1+score2+score3+score4+score5)/ 5;

    return;
}

【问题讨论】:

  • 您正在使用值调用函数,因此您无需指定数据类型,即只需执行calcScore(score1,...)。另外,getJudgesData 不需要传入一些参数吗?
  • @shree.pat18 当我删除数据类型 (double) 时,我收到一个新错误,提示“没有匹配函数调用 calcScore”
  • 好吧,您在顶部的函数签名没有任何参数,但实际的函数体有。您需要同步 2

标签: c++ xcode function parameters void


【解决方案1】:

让我们首先处理您的错误:正如@shree.pat18 在 cmets 中指出的那样,您正在调用一个函数并尝试给出参数的类型。这是不允许的。 C++知道参数的类型,因为你之前声明了它们。你可以像这样拨打calcScore

double score1=-9.0;
double score2=-9.0;
double score3=-9.0;
double score4=-9.0;
double score5=-9.0;

getJudgesData();

calcScore(score1, score2, score3, score4, score5);

但是,这会给您带来一个新问题:在编译时,编译器不知道一个名为 calcScore 的函数,它接受 5 个 double 类型的参数。

您正在声明两个名为calcScore 的函数:一个是简单声明且未定义无参数,另一个是声明并定义有参数:

// just a declaration. This function has no definition and will not link
void calcScore();

// declared and defined
void calcScore( double score1, double score2, double score3, double score4,double score5)
{
}

您可以删除calcScore 的第一个声明,因为我认为您不需要两者,并将其更改为:

void calcScore(double score1, double score2, double score3, double score4, double score5);

现在,当您尝试调用 calcScore 并在您的 main 中传入 5 个 double 时,编译器将知道您指的是什么函数。

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2015-07-09
    • 1970-01-01
    • 2016-02-22
    • 2018-12-04
    相关资源
    最近更新 更多