Tuesday 15 May 2012

c++ - How can I set a shared pointer to a regular pointer -


मैं पूरी तरह से साझा पॉइंटर्स की खबर है मैं

  std :: shared_ptr & gt; Gdiplus :: पेन & gt; कर कर एक को प्रारंभ करने की कोशिश कर रहा हूं। कलम (नया जीडीप्लस :: पेन);   

लेकिन यह कहता है कि उसे एक प्रकार विनिर्देशक की आवश्यकता है .... मैं यह साझा सूचक को एक नियमित सूचक पर सेट करने का भी प्रयास कर रहा हूं। क्या कोई मुझे बता सकता है कि यह कैसे काम करता है बहुत सराहना की

  #pragma एक बार वर्ग आकार {सार्वजनिक: आकार (); Gdiplus :: प्वाइंट प्रारंभ; जीडीप्लस :: प्वाइंट एंड; std :: shared_ptr & LT; Gdiplus :: पेन & gt; कलम (नया जीडीप्लस :: पेन ()); आभासी LRESULT ड्रा (Gdiplus :: ग्राफिक्स * m_GraphicsImage) = 0; शून्य सेटपेन (Gdiplus :: Pen * pen2) {pen.get () = pen2; } शून्य सेटस्टार्ट (इंट x पीओएस, इंट yPos) {start.X = xPos; Start.Y = yPos; } शून्य सेटएंड (इंट xकोर, इंट yCor) {end.X = xCor; End.Y = yCor; }   

}

<पूर्व> std :: shared_ptr & lt ; Gdiplus :: पेन & gt; कलम (नया जीडीप्लस :: पेन);

होना चाहिए <पूर्व> std :: shared_ptr & lt; Gdiplus :: पेन & gt; कलम (नया जीडीप्लस :: पेन (ब्रश, चौड़ाई));

या जो कुछ भी आपके कन्स्ट्रक्टर की तरह दिखता है

shared_ptr से एक कच्चे पॉइंटर प्राप्त करना

  setPen (pen.get ());   

संकेत: स्मार्ट पॉइंटर्स को नियंत्रित करने के लिए सावधान रहें जो स्मार्ट पॉइंटर्स द्वारा नियंत्रित होते हैं। क्या आप सुनिश्चित हैं कि आप एक स्मार्ट पॉइंटर (साझा या अद्वितीय) पास नहीं करना चाहते हैं?

आपको स्टडी हेल्पर फ़ंक्शन के माध्यम से अपना साझा पॉइंटर भी बनाना चाहिए

  auto pen = std :: make_shared & lt; Gdiplus :: pen & gt; (ब्रश, चौड़ाई);    

No comments:

Post a Comment