我正在为一个名为Robot的实验室编写一个程序。当我编译它时,我得到了这组错误:
Robot.cpp:43:13:错误:在'double'之前预期的unqualified-id
Robot.cpp:43:13:错误:预期')'在'double'之前
该类在Robot.h头文件中定义,导致问题的.cpp中的代码如下所示:
/*
* Name: Robot (constructor)
*
* Creates the robot with the given maximum speed.
*/
Robot( double maxSpd )
{
MAX_SPEED = maxSpd;
traveled = 0 ;
elapsed = 0 ;
x = 0 ;
y = 0 ;
}
我无法弄清楚为什么错误存在......而且我也不知道错误甚至意味着什么。我该如何解决?
答案 0 :(得分:3)
我设法重新创建了你的错误。
首先,签名后必须使用分号。当你试图定义一个函数时,它会声明一个函数。
Robot(double maxSpd) {...} //no semicolon
其次首先,由于这不属于你的班级,你需要对其进行限定:
Robot::Robot(double maxSpd) {...}
接下来,由于MAX_SPEED
是常量,因此需要将其放在成员初始值设定项中:
Robot::Robot(double maxSpd)
: MAX_SPEED(maxSpd) {...}
最后,您应该将其余的作业移到初始化列表中(不是必需的,但很好),请记住它们应该按顺序列出 在类定义中:
Robot::Robot(double maxSpd)
: MAX_SPEED(maxSpd), traveled(0), elapsed(0), x(0), y(0) {
//body, which, from your example, would now be empty
}
答案 1 :(得分:2)
可能的问题可能是在开括号之前有分号。但是没有看到整个班级,就很难这么说。
如果此代码不在类声明中,则可能在“Robot()”构造函数名称之前缺少“Robot ::”命名空间规范。
示例:
Robot::Robot(double maxSpd)
{
MAX_SPEED = maxSpd;
traveled = 0;
elapsed = 0;
x = 0;
y = 0;
}