1

我在我的项目中遇到了这个错误,我似乎无法弄清楚,错误是

错误显式类型丢失('int 假定)

这就是我所拥有的;

船舶.cpp

Ship::Ship(){
        rot = 0;
        position.x = SCREEN_WIDTH / 2;
        position.y = SCREEN_HEIGHT / 2;

        velocity.x = .2;
        velocity.y = .2;

        radius = 0;
}

float Ship::&rotateLeft(){
    if (rot < 0)
        rot += 360;
    rot-= velocity.x;
    return rot;
}

float Ship::&rotateRight(){
    if (rot > 360)
        rot -= 360;
    rot+= velocity.x;
    return rot;
}

float Ship::&getRot(){
    return rot;
}

船舶.h

#include "Physics.h"

class Ship : public Physics{
private:
    float rot;
public:
    float radius;
    XMFLOAT2 size;

    Ship();

    float &rotateRight();

    float &rotateLeft();

    float &getRot();
};

物理.h

class Physics{
public:
    XMFLOAT2 position;
    XMFLOAT2 velocity;
};

这很奇怪,因为它告诉我 rot 和 velocity 在我的 rotateleft 函数中是未定义的,但它并没有在构造函数中抱怨。同样的功能也给了我错误显式类型丢失('int假定')。

4

1 回答 1

1

函数返回类型上的 & 符号应该类名之前;即代替这个:

float Ship::&rotateLeft(){

... 尝试这个:

float & Ship::rotateLeft(){
于 2013-11-15T00:15:42.100 回答