में एक स्थिर सूचक शुरु कर रहा है मैं एक स्थिर सदस्य है कि इतने की तरह एक सूचक के साथ एक वर्ग है:सी ++
animation.h
class Animation
{
public:
Animation();
static QString *m;
};
animation.cpp
#include "animation.h"
QString* Animation::m = 0;
Animation::Animation()
{
}
जब मैं कोशिश इस तरह की 'एम' पॉइंटर को अन्य वर्ग से शुरू करने के लिए:
Animation::m = new QString("testing");
यह काम करता है।
लेकिन जब मैं इसे इस तरह कार्य करें:
QString x("Testing");
Animation::m = &x;
कार्यक्रम दुर्घटनाओं।
इस दूसरी विधि के साथ क्या गलत है?
इसके अलावा मैं उस स्थिर सूचक को निजी के रूप में रखना चाहता हूं ताकि मैं स्थिर गेटर और सेटर कार्यों को कर सकूं। सेटर को दूसरी विधि का उपयोग करना चाहिए क्योंकि 'एक्स' पैरामीटर में आ जाएगा, इसलिए मैं फंस गया हूं।
किसी भी मदद के लिए धन्यवाद!
यह निश्चित रूप से इसका उत्तर देता है धन्यवाद! –
'* (एनीमेशन :: एम) = एक्स; 'एक' 0' सूचक का वर्णन करता है। सूचक को कभी आवंटित नहीं किया गया था, इसे अभी' 0' में शुरू किया गया था। –
@ एएलएस ने इसे याद किया, सही किया। धन्यवाद। –