使sf::Shape成为参数类型,SFML

Make sf::Shape a parameter type, SFML

我正在尝试制作一个接受参数 sf::Shape 对象的函数(以便仅接受圆圈、矩形等) 但因为它是一个抽象 class,它抛出错误“不允许抽象 class 类型 sf::Shape 的参数”

这是我函数的签名: GraphObject::GraphObject(sf::Shape shape, int z = 0)

还有其他方法可以将形状作为参数传递吗?谢谢

接受 shape 作为参考或指针: GraphObject::GraphObject(sf::Shape& shape, int z = 0)GraphObject::GraphObject(sf::Shape* shape, int z = 0).

推理是不言自明的。您不能拥有抽象 class 类型的对象 - 因为它们是 abstract.