c++错误:term的计算结果不是一个带1个参数的函数

c++ error: term does not evaluate to a function taking 1 arguments

本文关键字:一个 参数 1个 函数 term 错误 计算 结果 c++      更新时间:2023-10-16

我在代码中的以下行收到错误"term not evaluate to a function taking 1 arguments":

steerToSpiralRefPoint(m_CentrePos);

但我不确定为什么…是因为函数只接受1个参数作为参数,但由于"m_centrePos"变量包含1个以上的属性,因此函数有效地接收了多个参数吗?

我用以下行定义了"steelToSpiralRefPoint":

CDirectOverflyItem steerToSpiralRefPoint = new CDirectOverflyItem::SteerStep(const CHeloData aHeloData);

"m_CentrePos"在该文件的开头被分配了值"cCenterPos"("CentrePos"是一个类型为"CCordinate"的变量,它有许多属性-纬度、经度、海拔高度等)。

CDirectOverflyItem也有很多属性——地面速度、风速、风向角等。

有人能告诉我为什么会出现这个错误,以及我应该如何纠正吗?

此表达式

steerToSpiralRefPoint(m_CentrePos);

是函数调用的后缀表达式。然而,从你的后转向来看,ToSpiralRefPoint不是一个函数(或函数指针),而是一个指向对象的指针。如果你想给指针赋值,那么你必须写

steerToSpiralRefPoint = m_CentrePos;

或者,如果有这种类型的运算符函数,那么代码应该看起来像

( *steerToSpiralRefPoint )( m_CentrePos );

这个建筑

CDirectOverflyItem steerToSpiralRefPoint = new CDirectOverflyItem::SteerStep(const CHeloData );

也是无效的。在表达式中,不能在变量之前使用限定符。它们只能在声明中使用。

问题似乎是我试图将错误的数据类型传递到参数中——它需要一个"CHeloData",但我试图给它一个"CCordinate"。