<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[gelöst] [boost] shared pointer als Klassenvariable?]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es eine Möglichkeit, einen shared_pointer global in der Klasse anzulgen?<br />
Ein Objekt &quot;Control&quot; steuert bei meinem Design ein anderes Objekt &quot;Build&quot;, in dem in einer Mehtode ein shared Pointer erstellt wird:<br />
BSP:</p>
<p>void readin(int value)<br />
{<br />
boost::shared_ptr&lt;int&gt; i1(new int(value));<br />
}</p>
<p>Nun möchte ich in einer anderen Methode auf eben diesen shared_pointer zugreifen...wie mache ich das geschickt?</p>
<p>Ich muss gestehen, dass ich die Boost Dokumentation an der Stelle einfach nicht verstehen will:<br />
<a href="http://www.boost.org/doc/libs/1_40_0/libs/smart_ptr/shared_ptr.htm" rel="nofollow">http://www.boost.org/doc/libs/1_40_0/libs/smart_ptr/shared_ptr.htm</a></p>
<p>Weder in den Programmiertechniken noch sonstwo steht was über globale Variablen.</p>
<p>Der Artikel in diesem Forum bringt mich leider auch nicht weiter:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-134971.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-134971.html</a></p>
<p>Ich könnte den Smart Pointer in einem Vector oder Stack speichern, dies wäre IMHO allerdings nur ein Umgehen des eigentlichen Problems.</p>
<p>Danke schonmal für eure Hilfe</p>
<p>MetalMan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252065/gelöst-boost-shared-pointer-als-klassenvariable</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 04:22:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252065.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Oct 2009 08:22:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] [boost] shared pointer als Klassenvariable? on Wed, 14 Oct 2009 13:59:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es eine Möglichkeit, einen shared_pointer global in der Klasse anzulgen?<br />
Ein Objekt &quot;Control&quot; steuert bei meinem Design ein anderes Objekt &quot;Build&quot;, in dem in einer Mehtode ein shared Pointer erstellt wird:<br />
BSP:</p>
<p>void readin(int value)<br />
{<br />
boost::shared_ptr&lt;int&gt; i1(new int(value));<br />
}</p>
<p>Nun möchte ich in einer anderen Methode auf eben diesen shared_pointer zugreifen...wie mache ich das geschickt?</p>
<p>Ich muss gestehen, dass ich die Boost Dokumentation an der Stelle einfach nicht verstehen will:<br />
<a href="http://www.boost.org/doc/libs/1_40_0/libs/smart_ptr/shared_ptr.htm" rel="nofollow">http://www.boost.org/doc/libs/1_40_0/libs/smart_ptr/shared_ptr.htm</a></p>
<p>Weder in den Programmiertechniken noch sonstwo steht was über globale Variablen.</p>
<p>Der Artikel in diesem Forum bringt mich leider auch nicht weiter:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-134971.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-134971.html</a></p>
<p>Ich könnte den Smart Pointer in einem Vector oder Stack speichern, dies wäre IMHO allerdings nur ein Umgehen des eigentlichen Problems.</p>
<p>Danke schonmal für eure Hilfe</p>
<p>MetalMan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792371</guid><dc:creator><![CDATA[MetalMan]]></dc:creator><pubDate>Wed, 14 Oct 2009 13:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] [boost] shared pointer als Klassenvariable? on Wed, 14 Oct 2009 10:09:19 GMT]]></title><description><![CDATA[<p>MetalMan schrieb:</p>
<blockquote>
<p>gibt es eine Möglichkeit, einen shared_pointer global in der Klasse anzulgen?</p>
</blockquote>
<p>Nein. Einfach weil &quot;global&quot; und &quot;in der Klasse&quot; Gegensätze sind. Meinst du vielleicht static?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792435</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 14 Oct 2009 10:09:19 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] [boost] shared pointer als Klassenvariable? on Wed, 14 Oct 2009 10:35:16 GMT]]></title><description><![CDATA[<p>Du hast natürlich Recht, meine Frage ist ob ich einen shared Pointer in der Klasse anlegen kann (in der Header) um dann in ALLEN Methoden darauf zugreifen zu können.</p>
<p>Bisher habe ich den SmartPointer nur in einer Methode gebraucht, daher habe ich den shared_pointer erstellt und anschließend in gespeichert.</p>
<p>Nun musste ich die Methode aufsplitten. Das Erzeugen geschieht in einer Methode, das anschließende speichern muss in einer anderen Methode geschehen.</p>
<p>Derzeit löse ich das Problem mit einem Stack, was aber wie gesagt nur ein Notbehelf ist.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792456</guid><dc:creator><![CDATA[MetalMan]]></dc:creator><pubDate>Wed, 14 Oct 2009 10:35:16 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] [boost] shared pointer als Klassenvariable? on Wed, 14 Oct 2009 11:16:39 GMT]]></title><description><![CDATA[<p>Meinst du so etwas?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/smart_ptr.hpp&gt;

class MyClass
{
   boost::shared_ptr&lt;int&gt;   Value_;

public:

   void f()
   {
      Value_.reset( new int( 42 ) );
   }

   void g()
   {
      if( Value_ )
      {
         std::cout &lt;&lt; *Value_ &lt;&lt; std::endl;
      }
   }
};
</code></pre>
<p>Vielleicht ist boost::optional besser geeignet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792478</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 14 Oct 2009 11:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] [boost] shared pointer als Klassenvariable? on Wed, 14 Oct 2009 11:39:04 GMT]]></title><description><![CDATA[<p>Genau das meine ich :).</p>
<p>Klar, mit reset kann man den Wert des Pointers neu setzen...genial!!!<br />
Darauf bin ich einfach nicht gekommen :(.</p>
<p>Funktioniert wie gewünscht...besten Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792484</guid><dc:creator><![CDATA[MetalMan]]></dc:creator><pubDate>Wed, 14 Oct 2009 11:39:04 GMT</pubDate></item></channel></rss>