c语言尚未实现的虚拟函数,为什么这个类没有声明任何纯虚拟成员函数抽象?...

在尝试创建Game类实例时遇到了错误,因为Game是从抽象类JApp派生的,而JApp中存在未实现的纯虚拟函数。要解决此问题,需要在Game类中实现JApp的纯虚拟函数Pause()和Resume()。同时,在Game的构造函数中调用了JApp的构造函数,但找不到匹配的重载版本。可能需要检查JApp的构造函数声明以确保正确初始化。
摘要由CSDN通过智能技术生成

以下课程是如何Game抽象的?我如何使它具体化,以便我可以创建它的实例?

game.h

#include

#include

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()

{

}

PS任何解释都会有所帮助,因为我不是面向对象编程方面的专家.

以下是错误消息以及其他一些内容:

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 ==========

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值