这些是我的抓取工具头文件的一些部分。我无法更改此头文件。
private:
int top_position; // The maximum position of the throttle
bool left_reverse; // true if left direction is reverse
bool right_reverse; // true if right direction is reverse
所以我尝试在我的实现文件中实现left_reverse
。这仍然是一个存根。
bool left_reverse()
{
return(false);
}
我用它来实现其他功能。
double Crawler::left_engine_speed() const
{
double speedpercentage;
double hundred(100.0);
speedpercentage = left_throttle.flow()*hundred;
if(left_reverse()) // <<< HERE IT IS
{
speedpercentage=speedpercentage*(-1);
}
return(speedpercentage);
}
但是我收到错误告诉我
错误:'((const Vehicles::Crawler*)this)->Vehicles::Crawler::left_reverse' cannot be used as a function.
有人能告诉我这里的问题吗?
答案 0 :(得分:1)
这不是一个功能。这是一个变量。没有任何有用的方法来假装它是一个功能。完全没有。周期。
答案 1 :(得分:0)
如果函数在某个名称空间中声明,例如在全局名称空间中,则写入
double Crawler::left_engine_speed() const
{
double speedpercentage;
double hundred(100.0);
speedpercentage = left_throttle.flow()*hundred;
if(::left_reverse()) // <<< HERE IT IS
{
speedpercentage=speedpercentage*(-1);
}
return(speedpercentage);
}
或
if(SomeNameSpace::left_reverse())
或者
double Crawler::left_engine_speed() const
{
bool left_reverse();
double speedpercentage;
double hundred(100.0);
speedpercentage = left_throttle.flow()*hundred;
if(left_reverse()) // <<< HERE IT IS
{
speedpercentage=speedpercentage*(-1);
}
return(speedpercentage);
}
这是一个简单的例子
#include <iostream>
class Crawler
{
public:
double left_engine_speed() const;
private:
bool right_reverse;
};
bool left_reverse() { return true; }
double Crawler::left_engine_speed() const
{
if ( left_reverse() ) return 1.0;
else return 0.0;
}
int main()
{
std::cout << Crawler().left_engine_speed() << std::endl;
return 0;
}