2013-04-15 68 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在複製時的功能)。

我想你可能需要在這裏重新構造的設計,但我不能告訴你的整體意圖是什麼,所以我不能給你在這方面有什麼好的建議。