我有一个初学者c++类的作业(请参阅下面的问题),在这里我被要求从单个函数传回2个值。我非常确定自己对如何使用函数以及程序应具有的一般结构的理解,但是我很难确定如何将两个变量从函数传递回“main”。
分配:
编写一个模拟飞机比赛的程序。该程序将显示一个表格,该表格显示两架飞机每秒飞行的速度(以公里/小时为单位)和以公里为单位的距离,直到其中一架飞机飞行了10公里。
这些是程序的要求:
-程序将使用具有以下参数的函数:时间和加速度。
-该函数将传回两个数据项:速度和距离。
最佳答案
您有两个选择(嗯,确实有三个,但是我省略了指针)。
最佳选择取决于您的程序。如果这是一个多次调用的函数,那么您可以选择使用选项#1。我认为“速度”是指在“时间”加速后达到的“恒定速度”。
void calc_velocity_profile(double accel_time,
double acceleration,
double &out_velocity, // these last two are
double &out_distance); // assigned in the function
如果这是一个更通用的功能和/或许多客户端将调用的功能,则我可能更愿意选择选项2。
struct velocity_profile {
double velocity;
double distance;
};
velocity_profile calc_velocity_profile(double accel_time, double acceleration);
在所有条件都相同的情况下,我倾向于选择选项1。考虑到这种选择,我喜欢一个返回值的函数,而不是改变其输入的函数。