我是一名新编码员,我只是在缠住卡住的函数和测试变量。我的目标是创建一个函数,当您输入姓名和年龄时,它会显示“ Hello(name)You are(age)” x3,其中包含3个不同的姓名和年龄。最后,程序将显示“ Hello(name1)(name 2)(name 3)”,除了最后一部分,我已经可以使用所有内容,并且保留了名称信息。如何做到这一点。 (我使用C ++)
#include <iostream>
using namespace std;
void whatisName(string name, int age)
{
cout << "What is thy name: " << endl;
cin >> name;
cout << "What is thy age: " << endl;
cin >> age;
cout << "Hello " << name << " You are " << age << endl;
}
void allNames(string name1, string name2, string name3 )
{
cout << "Hello " << name1 << " " << name2 << " " << name3 << " " << endl;
}
int main()
{
string myName, myName2, myName3;
int myage, myage2, myage3;
whatisName(myName, myage);
whatisName(myName2, myage2);
whatisName(myName3, myage3);
allNames (myName, myName2, myName3);
}
答案 0 :(得分:4)
通过引用传递变量。
更改:
void whatisName(string name, int age) { ..
收件人:
void whatisName(string& name, int& age) { ...
答案 1 :(得分:0)
如上所述,通过引用是您最好的选择。您希望通过引用传递的原因是,退出函数后,您的参数可能会更改。如果不通过引用传递,则退出函数
时,您的参数不会更改 void whatisName(string name, int age){...}
这不会更改参数名称或整数寿命。因此,如果我输入
string a = "foo";
int b = 16;
whatisName(a,b)
无论函数a =“ foo”和b = 16发生了什么,因为我们尚未创建通过引用传递的函数。为了解决这个问题,我们转到函数声明并像
一样更改它 whatisName(string &name,int& age)
现在将对其进行更改,以便可以修改该函数中的参数。