gpt4 book ai didi

C++编译错误: cannot convert parameter 1 from 'DateTimeAndZone' to 'const int'

转载 作者:行者123 更新时间:2023-11-28 06:29:50 25 4
gpt4 key购买 nike

我正在开发一些模拟软件,其中我有一个实体正在朝着二维 map 上的特定位置移动。当实体向某个位置移动时,我正在尝试显示有关其移动的一些信息 - 例如到达那里需要多长时间(TimeToGo- 或 TTG)、它的 ETA 以及它必须行进的剩余距离( DistanceToGo 或 DTG)。

我的 DisplayTime.cpp 源文件中有以下函数:

void TimeReadout::update(const TPEquipmentTime::DateTimeAndZone& dateTimeAndZone_, const bool convertToSavedZone_)
{
...
}

此函数用于更新 GUI 上显示的实体在该位置的 ETA 的值。我知道该函数可以正常工作,因为它在程序的多个位置使用并且在这些位置执行预期的操作。

我现在正尝试重用该函数(复制和粘贴)来更新 TTG 值

我现在正尝试使用另一个源文件中的函数:Dialogue.cpp,方法如下:

pFlightPlanTTGReadout->update(fpTTG);

fpTTG 变量的类型为 TPEquipmentTime::DateTimeAndZoneupdate() 函数状态采用 类型的变量常量整数

当我尝试编译时,我得到了预期的错误:

'update' : cannot convert parameter 1 from 'Time_Value' to 'const int'

但是,当我查看我从中复制这段代码的函数时,它已经完成了我正在尝试使用相同类型的(不同)参数所做的事情,即

pFlightPlanETAReadout->update(fpETA);

其中 fpETATPEquipmentTime::DateTimeAndZone 类型的变量

我在这里错过了什么?为什么这在原始函数中有效,但在我正在编写的函数中却无效,即使我正在(至少尝试)做同样的事情,只是使用不同的变量?

编辑 07/01/2015 @ 18:45我刚刚注意到我尝试在我的函数中使用的 update() 函数调用与在原始函数中使用的函数调用之间的区别:

原文:

pFlightPlanETAReadout->update(fpETA);

如果我将光标悬停在 update 上,小对话框中会显示两个功能:

virutal void TimeReadout::update(void)

virtual void TimeReadout::update(const TPEquipmentTime::DateTimeAndZone & dateTimeAndZone_, const bool convertToSavedZone_ = true)

而在我的函数中:

pFlightPlanTTGReadout->update(fpTTG);

如果我将光标悬停在“更新”上,对话框只会显示一个功能:

void ElapsedTimeReadout::update(const int total_seconds_)

最佳答案

除非我遗漏了什么……这是基本的 C++。正如您所提到的,函数 pFlightPlanTTGReadout->update 接受一个 int 参数,并且您传递的不是 int 并且不能被隐式转换到 int

原来的pFlightPlanETAReadout->update(fpETA)函数参数也是int吗?如果是的话,

  • 一种可能是原代码中的DateTimeAndZone有一个从DateTimeAndZoneint的转换运算符。
  • 另一种可能性是原始代码有一个重载的 update 函数,该函数将 DateTimeAndZone 作为参数。

关于C++编译错误: cannot convert parameter 1 from 'DateTimeAndZone' to 'const int' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com