2013-04-15 70 views
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; 
} 

从缩小我都做了,我想坠毁在这里的某个地方发生的事情。一旦构造函数被调用,程序崩溃。有人知道我在这里做错了吗?任何帮助将不胜感激。

+0

发布**完整**代码。这不是说明性的,除非说你肯定不想*那些语义。 –

+0

是mDrawables的一员粒子?看起来现在是... – RvdK

+1

“粒子”构造函数中的'mDrawables' ...是一个成员变量?或者是从第一行开始的全局范围变量? – tom

回答

1

我没有看到指针的指针?

*mDrawables = *hum; 

mDrawables是一个指针,但* mDrawables解除引用指针,并且可以是类是不可拷贝。

可能是你应该尝试这种

mDrawables = hum; 

此外,我希望从什么sf::Drawable

+0

这是做到了。我知道sf :: Shape继承自sf :: Drawable,但我无法弄清楚我做错了什么。非常感谢你! ;) – Chivos

0

它看起来就像你在书写与mDrawables内容mDrawables内容继承sf::Shape(别名为Particle构造函数中的参数hum)。

*mDrawables = *hum应被解读为“将hum的内容分配给mDrawables的内容”。

这很难说,为什么这可能会导致崩溃;代码示例中没有足够的详细信息(我不知道Shape在复制时的功能)。

我想你可能需要在这里重新构造的设计,但我不能告诉你的整体意图是什么,所以我不能给你在这方面有什么好的建议。