나는 소행성 게임을 프로그래밍으로 배우는 방법으로 일하고 있는데,이 오류는 내 수업 중 하나 유형을 지정하지 않습니다."SpaceShip은 분명히 Type입니다. 비록 SpaceShip이 분명히 유형입니다."
나는 Entity 클래스에서 상속 한 SpaceShip 클래스 (둘 다 정의 됨)와 Entity에서 상속하는 Bullet 클래스를가집니다. SpaceShip 멤버를 누가 총알을 쏜 사람인지를 알려주는 방법으로 Bullet 클래스에 넣으려고합니다. 그러나 'SpaceShip'이 유형을 지정하지 않는다고 계속 말합니다.
spaceship.h
class SpaceShip : public Entity
{
private:
int lives;
int score;
int animationRow;
int shotsFired;
public:
SpaceShip();
void Init(SDL_Surface *image = NULL);
void Destroy();
void Update();
void Render(SDL_Surface *screen);
...
};
bullet.h
#ifndef BULLET_H
#define BULLET_H
#include <SDL/SDL_gfxPrimitives.h>
#include "entity.h"
#include "spaceship.h"
#include "Globals.h"
class Bullet : public Entity
{
private:
SpaceShip* owner;
public:
Bullet(SpaceShip* ship);
void Update();
void Render(SDL_Surface *screen);
void Destroy();
void Collided(int objectID);
};
#endif // BULLET_H
왜 우주선의 유형을 찾는되지 않은 : 여기
는 일부 코드입니까?
현재 [당신의 최소한의 테스트 케이스 (http://sscce.org) Forward decleration하지만 더 진보 된 방법으로 쉽게 수행 할 수 있습니다 . 지금까지 디버깅을 해왔 던 그 중 하나입니다. –
'spaceship.h'는 아마도 무엇인가를 포함합니까? –
우주선이 총알을 발사하기 때문에'spaceship.h'는'entity.h'와'bullet.h'을 포함합니다. – Goldentoa11