-3

好的,我不知道如何使用引用变量从 void 类型中提取一个值以将其带回 main 。我已经多次阅读教科书中的该部分,但它提供的代码片段对我来说没有意义,而且数量也不多。有人可以解释一下,或者给出一个简单的代码示例吗?

谢谢

这是我拥有的代码,应该发生的是我应该使用我的 main 调用的第一个函数从用户那里提取 5 个测试分数。main 调用的下一个函数应该调用第三个函数,该函数确定最低的测试分数并将其从中间函数的计算中删除。

我尝试运行代码(仅使用文本存根和没有计算的变量),但我的变量都显示为最大的数字,而不是他们应该显示的用户输入。

#include <iostream>
#include <cmath>
#include <string>

using namespace std;

int main()
{
double score1, score2, score3, score4, score5, average;

void getScore(double &);
void calcAverage(double &);
int findLowest();

getScore(score1);
getScore(score2);
getScore(score3);
getScore(score4);
getScore(score5);

calcAverage(average);

cout<<"Let's see what we have here.\n"            <<score1<<endl<<score2<<endl<<score3<<endl<<score4<<endl<<score5<<endl<<average;
system("pause");
return 0;
}

void getScore(double &)
{
double score;

cout<<"Please enter a test score.";
    cin>>score;
    while(score<0 || score>100)
    {
        cout<<"Please enter a valid score.";
        cin>>score;
    }
}

void calcAverage(double &)
{
int findLowest();
double lowest;

cout<<"Yes, I'm a stub.";
lowest = findLowest();
}

int findLowest()
{
cout<<"I'm a stub too!";
return 5;
}
4

3 回答 3

1

你的函数应该这样写:

void getScore(double &refScore) //!!
{
    //double score;

    cout<<"Please enter a test score.";

    cin>>refScore;
    while(refScore<0 || refScore>100)
    {
        cout<<"Please enter a valid score.";
        cin>>refScore;
    }
}

我想你应该已经明白了..

于 2013-03-03T21:04:58.117 回答
0

我认为解释 of 想法的最佳方法references是将参考视为别名。这不是 100% 真实的,但对于初学者来说,这是一个很好的寓言。

无论您对引用做什么,也会对原始对象执行任何操作。

因此,您所做的就是为同一个变量定义一个替代名称。

于 2013-03-03T20:23:27.830 回答
0

引用是现有对象的另一个名称(别名),因此只能引用现有对象(必须初始化)并且不能重新分配给其他对象。const 指针满足这些条件,并被编译器用来表示引用。希望很清楚。

于 2013-03-03T20:32:19.600 回答