我有以下代码:
shipVertices = { //This is going to cause a memory leak
new sf::Vertex(new sf::Vector2f(0, 0)),
new sf::Vertex(new sf::Vector2f(.2, .4)),
new sf::Vertex(new sf::Vector2f(.15, -.8)),
new sf::Vertex(new sf::Vector2f(0, -1)),
new sf::Vertex(new sf::Vector2f(-.15, -.8)),
new sf::Vertex(new sf::Vector2f(-.2, .4))
};
在我的析构函数中,删除组成sf::Vertex
的{{1}}是微不足道的。如何删除我传递给那些构造函数的shipVertices
?
我甚至需要删除那些?我认为他们可能会以某种方式在内部处理。
答案 0 :(得分:0)
从sfml文档中查看API,sf :: Vertex的构造函数是Vertex (const Vector2f &thePosition)
,它需要一个常量引用(所以你也可以临时传入)。您尝试为它提供指针,这是调用new
运算符的结果,因此它甚至不应该编译。
因此,您不需要销毁向量,因为您根本不需要动态分配它们。