我有一个初学者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。考虑到这种选择,我喜欢一个返回值的函数,而不是改变其输入的函数。

    07-24 09:52
    查看更多