0

示例代码

sf::Drawable *mDrawables = new  sf::Shape(sf::Shape::Circle(-10, -10,5,sf::Color::Green));
Particle particle(mDrawables);


Particle::Particle(sf::Drawable *hum)
{
    *mDrawables = *hum;
}

从我所做的缩小范围来看,我认为崩溃发生在这里的某个地方。一旦构造函数被调用,程序就会崩溃。有谁知道我在这里做错了什么?任何帮助将不胜感激。

4

2 回答 2

1

我没有看到指向指针的指针?

*mDrawables = *hum;

mDrawables 是一个指针,但是 *mDrawables 解引用了指针并且可能是类不可复制。

也许你应该试试这个

mDrawables = hum;

我也希望sf::Shape继承自sf::Drawable

于 2013-04-15T18:00:09.247 回答
0

看起来您正在用(在构造函数中作为参数别名)的内容mDrawables覆盖的内容mDrawableshumParticle

该行*mDrawables = *hum应读作“将内容分配给”的hum内容mDrawables

很难说为什么这会导致崩溃。代码示例中没有足够的细节(我不知道Shape你复制它时 a 做了什么)。

我认为您可能需要在这里重新构建设计,但我无法说出您的总体意图是什么,因此在这方面我无法给您任何好的建议。

于 2013-04-15T18:02:13.360 回答