course
course copied to clipboard
访问者设计模式缺少继承
https://github.com/parallel101/course/blob/8c890ba00bc452af8d66c419a27998297378679e/slides/design/game.md?plain=1#L1000 修改为:
struct MoveMessage :Message{
glm::vec3 velocityChange;
void accept(MessageVisitor *visitor) override {
visitor->visit(this); // 会调用到 visit(MoveMessage *mm) 这个重载
}
};
struct JumpMessage :Message{
double jumpHeight;
void accept(MessageVisitor *visitor) override {
visitor->visit(this); // 会调用到 visit(JumpMessage *mm) 这个重载
}
};