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;
}

Ship.h

#include "Physics.h"

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

    Ship();

    float &rotateRight();

    float &rotateLeft();

    float &getRot();
};

Physics.h

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

これは、rotateleft 関数では回転と速度が定義されていないことを示しているが、コンストラクターでは文句を言わないため、奇妙です。同じ関数から、明示的な型が見つからないというエラーも表示されます(「int想定」)。

4

1 に答える 1

1

関数の戻り値の型のアンパサンドは、クラス名の前に置く必要があります。つまり、これの代わりに:

float Ship::&rotateLeft(){

... これを試して:

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