在我的代码中假设“语法错误”,“缺少';'在'。'之前

时间:2011-05-12 07:39:21

标签: c++

我对这个级别的编码比较陌生,我真的在这个错误上碰壁了:

[Line 65] error C2143: syntax error : missing ';' before '.'

显然,这通常意味着我的代码中存在语法错误,但我无法在任何地方找到它。任何帮助(或第二组眼睛看到我的错误将不胜感激)。

以下是相关代码段:

class RacingCar {

public: 
            Wheel* wheels[4];

            RacingCar()
            { 
                wheels[0] = new Wheel;
                wheels[1] = new Wheel;
                wheels[2] = new Wheel;
                wheels[3] = new Wheel;
            }

            RacingCar( RacingCar& refOldCar)
            {
//              new Wheel(refOldCar.wheels[0]->pressure);
                wheels[0] = new Wheel;
                wheels[1] = new Wheel;
                wheels[2] = new Wheel;
                wheels[3] = new Wheel;

                int a = refOldCar.speedCopy();
                **RacingCar.setSpeed(10);**
                RacingCar.Brake(50);
                RacingCar.Print();
                RacingCar.speed = refOldCar.speed;
            }

非常感谢您的帮助

4 个答案:

答案 0 :(得分:5)

此:

RacingCar.setSpeed(10);

应该是:

setSpeed(10);

这是:

的简写
this->setSpeed(10);

答案 1 :(得分:1)

RacingCar.setSpeed(10);

没有这样的语法。写:

RacingCar::setSpeed(10);

setSpeed(10);

this->setSpeed(10);

请注意,所有可能具有不同的含义,但在您的上下文中可能会有相同的效果。

答案 2 :(得分:1)

您正在使用Class和Constructor(与Class相同)名称 - 例如RacingCar而不是refOldCar,这个或者只是直接访问成员。

答案 3 :(得分:0)

由于速度不太可能是类级属性(影响所有汽车),你可能想写:

this->setSpeed (10); // or, for the less anal, just "setSpeed(10);" :-)

这更准确地说是尝试设置对象级属性。类级属性将引用RacingCar::SomethingOrOther(双冒号而不是点),这就是为什么它认为您需要在.字符之前关闭当前语句。