我的代码中的以下行中出现错误'术语未评估为带有1个参数的函数':
steerToSpiralRefPoint(m_CentrePos);
但是我不确定为什么会这样......函数只会将1个参数作为参数,但由于'm_centrePos'变量包含多个属性,该函数是否有效地接收了几个参数?
我已经使用以下行定义了'steerToSpiralRefPoint':
CDirectOverflyItem steerToSpiralRefPoint = new CDirectOverflyItem::SteerStep(const CHeloData aHeloData);
'm_CentrePos'在此文件的开头被指定了值'cCentrePos'('cCentrePos'是'CCoordinate'类型的变量,它具有许多属性 - 纬度,经度,海拔高度等)。
'CDirectOverflyItem还有许多属性 - 地面速度,风速,风角等。
有人能指出我为什么会收到此错误,以及我该如何纠正错误?
答案 0 :(得分:1)
此表达式
steerToSpiralRefPoint(m_CentrePos);
是函数调用的后缀表达式。但是,从你的帖子开始,steerToSpiralRefPoint不是函数(或函数指针),而是指向对象的指针。如果要为指针赋值,则必须编写
steerToSpiralRefPoint = m_CentrePos;
或者,如果此类型存在运算符函数,则代码应为
( *steerToSpiralRefPoint )( m_CentrePos );
这个结构
CDirectOverflyItem steerToSpiralRefPoint = new CDirectOverflyItem::SteerStep(const CHeloData );
也无效。您不能在表达式中的变量之前使用限定符。它们只能在声明中使用。
答案 1 :(得分:0)
似乎问题是我试图将错误的数据类型传递给参数 - 它期待'CHeloData',但我试图给它一个'坐标'。