オブジェクトとプレーヤという2つのクラスがあります。 オブジェクトには基本的な機能が必要なので、Playerにオブジェクトを継承させたい。 Playerには、Objectが実行できる機能から拡張された機能が追加されています。 私は4つのファイルを持っています: Object.cpp、Object.h、Player.cpp、Player.h。.hと.cppファイルにコンストラクタを継承する
私の状況の例を作るために、Playerクラスに変数を追加しました: playerVariable。私のObjectコンストラクタのパラメータにはこれが含まれていませんが、Playerコンストラクタはそうしているので、PlayerはObjectを展開しています。
Object.h:
#include <hge.h>
#include <hgesprite.h>
#include <hgeanim.h>
#include <math.h>
class Object{
int x, y;
HTEXTURE tex;
hgeAnimation *anim;
float angle, FPS, velocity;
public:
Object(int x, int y, HTEXTURE tex, float FPS);
//Setters
void SetX(int x);
void SetY(int y);
void SetSpeed(int FPS); //Image Speed
void SetAngle(float angle); //Image Angle
void SetVelocity(float velocity); //Object Speed/Velocity
//Getters
};
Object.cpp:
/*
** Object
**
*/
#include <hge.h>
#include <hgesprite.h>
#include <hgeanim.h>
#include <math.h>
#include "Object.h"
Object::Object(int x, int y, HTEXTURE tex, float FPS){
this->x = x;
this->y = y;
this->tex = tex;
this->FPS = FPS;
}
//Setters
void Object::SetX(int x){
this->x = x;
}
void Object::SetY(int y){
this->x = x;
}
void Object::SetSpeed(int FPS){
this->FPS = FPS;
anim->SetSpeed(FPS);
}
void Object::SetAngle(float angle){
this->angle = angle;
}
void Object::SetVelocity(float velocity){
this->velocity = velocity;
}
//Getters
Player.h:
#include <hge.h>
#include <hgesprite.h>
#include <hgeanim.h>
#include <math.h>
#include "Object.h"
class Player : public Object{
int playerVariable;
public:
Player(int x, int y, HTEXTURE tex, float FPS, int playerVariable);
//Setters
void SetX(int x);
void SetY(int y);
void SetSpeed(int FPS); //Image Speed
void SetAngle(float angle); //Image Angle
void SetVelocity(float velocity); //Object Speed/Velocity
//Getters
};
プレーヤー
とにかく、ここに私のコードです。 cpp:
/*
** Object
**
*/
#include <hge.h>
#include <hgesprite.h>
#include <hgeanim.h>
#include <math.h>
#include "Object.h"
#include "Player.h"
Player::Player(int x, int y, HTEXTURE tex, float FPS, playerVariable){
this->x = x;
this->y = y;
this->tex = tex;
this->FPS = FPS;
}
//Setters
void Object::SetX(int x){
this->x = x;
}
void Object::SetY(int y){
this->x = x;
}
void Object::SetSpeed(int FPS){
this->FPS = FPS;
anim->SetSpeed(FPS);
}
void Object::SetAngle(float angle){
this->angle = angle;
}
void Object::SetVelocity(float velocity){
this->velocity = velocity;
}
//Getters
私の問題は、これを正しく設定しているかどうかはわかりません。 私は継承に関するチュートリアルを見てきましたが、 .hファイルとクラスの.cppファイルの両方でセットアップする方法はわかりません。助けてもらえますか?
あなたの実際の問題を述べ、あなたの問題を明らかにする(最小限の)コードを投稿してください。 –
.cppのすべてがPlayerだけを参照する必要があります。あなたはプレイヤーの宣言で基本クラスについて言及する必要があります –