gpt4 book ai didi

c++ - 这是糟糕的代码吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:31 24 4
gpt4 key购买 nike

<分区>

我使用这种代码风格已经有一段时间了,我通常会创建一个前面有“ID”的类,将其放在标题中,然后创建一个 .cpp 文件并放置一个名为“IDClassnameLocal”的类”。我在抽象头类中创建纯虚函数,然后在 .cpp 类中创建普通虚函数并让它继承抽象头类。

这是糟糕的代码设计吗?我的编码是否高效?

  • 我把ID(标识)放在类名前面,以防止重定义和干净。

例子:

// Player.h // ////////////////////////////////////////////////////////////////
class IDPlayer {
public:
virtual ~IDPlayer(void) {} // Destructor

virtual void PlayerData(void) = 0;
virtual void Controls(void) = 0;
};
extern IDPlayer* idplayer;

// Player.cpp // //////////////////////////////////////////////////////////////
class IDPlayerLocal : public IDPlayer {
public:
IDPlayer(void) {} // Constructor

virtual void PlayerData(void);
virtual void Controls(void);
};
IDPlayerLocal idplayerLocal;
IDPlayer* idplayer = &idplayerLocal;
// Class Function Definitions
void IDPlayerLocal::PlayerData(void) {
Player.X = 400;
Player.Y = 500;

Player.W = 20;
Player.H = 20;

Player.VelocityX = (float)0.31;
Player.VelocityY = (float)0.31;
}

void IDPlayerLocal::Controls(void) {
if(::MainGame) {
if(KEY_DOWN(0x41)) { // A
Player.X = Player.X - Player.VelocityX;
if(Player.X <= 0)
Player.X = 0;
}
if(KEY_DOWN(0x44)) { // D
Player.X = Player.X + Player.VelocityX;
if(Player.X+Player.W >= 650)
Player.X = 650 - Player.W;
}
if(KEY_DOWN(0x57)) { // W
Player.Y = Player.Y - Player.VelocityY;
if(Player.Y <= 0)
Player.Y = 0;
}
if(KEY_DOWN(0x53)) { // S
Player.Y = Player.Y + Player.VelocityY;
if(Player.Y+Player.H >= 570)
Player.Y = 570 - Player.H;
}
if(KEY_DOWN(VK_SPACE)) {

}
}
}


// Core.cpp // ////////////////////////////////////////////////////////////////

// ...
// Intialized Data //
idplayer->PlayerData();

while(TRUE) {
// ...
// Loop Data //
idplayer->Controls();
// ...
}
// ...

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com