Как следующий класс Game
абстрактный? И как мне сделать его конкретным, чтобы я мог создать его экземпляр?
game.h
#include <JApp.h>
#include <JGE.h>
class Game: public JApp
{
private:
JGE* Engine;
int x, y, x2, y2;
public:
Game(JGE *engine);
virtual ~Game();
virtual void Create();
virtual void Destroy();
virtual void Update();
virtual void Render();
};
main.cpp
//Other headers
#include "game.h"
int main(void)
{
JGE* engine = NULL;
SetupCallbacks();
engine = JGE::GetInstance();
engine->printf("Starting Game!");
Game* g = new Game(engine); // Error 'Game is an abstract type
engine->SetApp(g);
engine->Run();
engine->Destroy();
sceKernelExitGame();
}
Game::Game(JGE* engine) : JApp(engine)
{
Engine = engine;
x = 0;
x2 = 100;
y = 0;
y2 = 100;
}
void Game::Update()
{
if (this->Engine->GetButtonClick(PSP_CTRL_UP))
{
x2 += 1;
y2 += 1;
}
else if(this->Engine->GetButtonClick(PSP_CTRL_DOWN))
{
y2 += 10;
y += 10;
}
}
void Game::Create()
{
}
void Game::Render()
{
JRenderer* renderer = JRenderer::GetInstance();
renderer->DrawLine(x, y, x2, y2, ARGB(0, 0, 0, 255));
}
Game::~Game()
{
}
void Game::Destroy()
{
}
P.S. Любое объяснение будет полезно, так как я не эксперт в объектно-ориентированном программировании.
Вот сообщение об ошибке вместе с некоторыми другими вещами:
1>------ Build started: Project: PSP Pong, Configuration: Debug Win32 ------
1> psp-g++ -I. -Ic:/pspsdk/psp/sdk/include -O2 -G0 -Wall -I. -Ic:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-exceptions -fno-rtti -D_PSP_FW_VERSION=150 -c -o main.o main.cpp
1> main.cpp: In function 'int main()':
1>main.cpp(57): error : cannot allocate an object of abstract type 'Game'
1> game.h (5) : note: because the following virtual functions are pure within 'Game':
1> c:/pspsdk/psp/sdk/include/JApp.h (78) : note: virtual void JApp::Pause()
1> c:/pspsdk/psp/sdk/include/JApp.h (84) : note: virtual void JApp::Resume()
1> main.cpp: In constructor 'Game::Game(JGE*)':
1>main.cpp(66): error : no matching function for call to 'JApp::JApp(JGE*&)'
1> c:/pspsdk/psp/sdk/include/JApp.h (26) : note: candidates are: JApp::JApp()
1> c:/pspsdk/psp/sdk/include/JApp.h (22) : note: JApp::JApp(const JApp&)
1> c:\pspsdk\bin\make: *** [main.o] Error 1
1> Press any key to continue . . .
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "c:\pspsdk\bin\vsmake.bat" exited with code -1.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========