对于如何在OOP样式C中实现简单的实体层次结构感到困惑。例如,这里是等效的C ++代码:
class Entity {
protected:
float x, y;
Entity(float x, float y) : x(x), y(y) { }
virtual void update() = 0;
virtual void render() = 0;
virtual ~Entity() { }
};
class Player : public Entity {
Player(float x, float y) : Entity(x, y) { }
void update() {
}
void render() {
}
};
所以现在我有一个结构实体,它有两个指向更新和渲染函数的函数指针。然后我会有一个Player结构,它有一个指向Entity结构的指针,因此它可以访问成员。 我有点困惑的一件事是分配如何工作......我是否有一个new_entity函数可能会分配实体结构?我可以使用new_player函数来分配实体ptr,并返回Player结构,并将函数设置为指向player_update,play_render函数等吗?