c ++错误:term不会计算为带有1个参数的函数

时间:2014-09-26 09:46:15

标签: c++

我的代码中的以下行中出现错误'术语未评估为带有1个参数的函数':

steerToSpiralRefPoint(m_CentrePos);

但是我不确定为什么会这样......函数只会将1个参数作为参数,但由于'm_centrePos'变量包含多个属性,该函数是否有效地接收了几个参数?

我已经使用以下行定义了'steerToSpiralRefPoint':

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

'm_CentrePos'在此文件的开头被指定了值'cCentrePos'('cCentrePos'是'CCoordinate'类型的变量,它具有许多属性 - 纬度,经度,海拔高度等)。

'CDirectOverflyItem还有许多属性 - 地面速度,风速,风角等。

有人能指出我为什么会收到此错误,以及我该如何纠正错误?

2 个答案:

答案 0 :(得分:1)

此表达式

steerToSpiralRefPoint(m_CentrePos);

是函数调用的后缀表达式。但是,从你的帖子开始,steerToSpiralRefPoint不是函数(或函数指针),而是指向对象的指针。如果要为指针赋值,则必须编写

steerToSpiralRefPoint = m_CentrePos;

或者,如果此类型存在运算符函数,则代码应为

( *steerToSpiralRefPoint )( m_CentrePos );

这个结构

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

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

答案 1 :(得分:0)

似乎问题是我试图将错误的数据类型传递给参数 - 它期待'CHeloData',但我试图给它一个'坐标'。