c ++ GUI上的变量值未正确更新

时间:2015-02-12 16:27:30

标签: c++ arrays debugging variable-assignment assignment-operator

我正在调试一些部分用C ++编写,部分用Ada编写的仿真软件。在GUI上,有两个显示ETA和ETA的值。 TimeToGo是一个实体在其旅程的任何特定路段上进行模拟,以及整个旅程的剩余时间。 TimeToGo&为当前分支显示的ETA值是正确的(即实体从其当前位置到达其当前目标目的地需要多长时间)。但是,TimeToGo&整个旅程剩余时间的ETA值不正确 - 大约40-50秒落后。

我在代码中遇到了几个任务,我想知道它们是否是错误的方式:

if(some condition){
    mFlightPlanData[0] = fpMiniToteData;
} else {
    mFlightPlanData[1] = fpMiniToteData;
}

mFlightPlanData[]flightPlans的数组,大小为2,因为每架飞机在任何时候最多可以有两个飞行计划 - 主要和次要。 fpMiniToteData是用于在GUI上显示飞行计划数据的变量。

现在,在我看来,这些任务是错误的 - 这似乎是在说:

  

将飞行计划数组中的第一个元素设置为等于显示数据的值

     
    

否则

  
     

将飞行计划数组中的第二个元素设置为等于显示数据的值

然而,应该发生的是display data应该设置为flight plan array中第一个或第二个元素的值...

我尝试通过切换分配来做到这一点,即

if(some condition){
    fpMiniToteData = mFlightPlanData[0];
} else {
    fpMiniToteData = mFlightPlanData[1];
}

但我现在收到一个编译错误:

  

错误C2678:二进制'=':找不到哪个运算符带有'const ...'类型的左手操作数,或者没有可接受的转换)

这个错误是什么意思?我是否需要定义一个函数,将数组中保存的数据类型转换为fpMiniToteData的数据类型?

非常感谢任何帮助。

编辑12/02/2015 @ 1645

fpMiniToteData在函数定义中定义 - 上面代码所属的函数:

void FlightPlanInterface::setFlightPlanData(
     const FlightPlanMinitoteTypes::FlightPlanPerformanceDataViewId_Type viewId,
     const FlightPlanMinitoteTypes::FlightPlanMinitoteData_Variant& fpMiniToteData)
{

mFlightPlanData在头文件中定义如下:

private:
    FlightPlanMinitoteTypes::FlightPlanMinitoteData_Variant mFlightPlanData[2];

0 个答案:

没有答案