<?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[Wozu &amp;quot;class&amp;quot; in boost::shared_ptr?]]></title><description><![CDATA[<p>Hallihallo</p>
<p>Wenn ich boost::shared_ptr verwende, wozu muss ich dann &quot;class&quot; vor den Typ des Pointers schreiben?</p>
<pre><code>boost::shared_ptr&lt;[b]class[/b] Node&gt; neu(new Node(12));
</code></pre>
<p>Ich hab's mal ohne probiert und es scheint zu funktionieren, an den meisten Stellen in den Unterlagen die ich habe, wird's aber mit &quot;class&quot; gemacht, wird also schon seine Gründe haben, denke ich.</p>
<p>Wäre nett, wenn mir jemand helfen kann. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243413/wozu-quot-class-quot-in-boost-shared_ptr</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 03:28:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243413.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Jun 2009 12:51:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 12:51:03 GMT]]></title><description><![CDATA[<p>Hallihallo</p>
<p>Wenn ich boost::shared_ptr verwende, wozu muss ich dann &quot;class&quot; vor den Typ des Pointers schreiben?</p>
<pre><code>boost::shared_ptr&lt;[b]class[/b] Node&gt; neu(new Node(12));
</code></pre>
<p>Ich hab's mal ohne probiert und es scheint zu funktionieren, an den meisten Stellen in den Unterlagen die ich habe, wird's aber mit &quot;class&quot; gemacht, wird also schon seine Gründe haben, denke ich.</p>
<p>Wäre nett, wenn mir jemand helfen kann. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727598</guid><dc:creator><![CDATA[Yarrow]]></dc:creator><pubDate>Tue, 16 Jun 2009 12:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 12:55:19 GMT]]></title><description><![CDATA[<p>Musst du nicht, und das hat nichts mit <code>shared_ptr</code> zu tun.</p>
<p>In C musste man bei Strukturen jeweils ein <code>struct</code> zu der Deklaration hinschreiben:</p>
<pre><code class="language-cpp">struct MyStruct
{
    int i;
    double d;
};

struct MyStruct Obj;
</code></pre>
<p>In C++ ist das unnötig. Bei <code>class</code> das Gleiche, das kam zwar erst in C++, aber ist auch erlaubt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727605</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 16 Jun 2009 12:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 12:57:10 GMT]]></title><description><![CDATA[<p>Das ist eine <a href="http://en.wikipedia.org/wiki/Forward_declaration" rel="nofollow"><em>forward declaration</em></a> als Templateparameter.</p>
<p>Bei folgendem Code ist es aber völlig sinnlos, weil du sowieso eine vollständige Deklaration der Klasse brauchst, um Speicher anfordern zu können.</p>
<pre><code class="language-cpp">boost::shared_ptr&lt;/*class */Node&gt; neu(new Node(12));
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727606</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 16 Jun 2009 12:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 13:13:56 GMT]]></title><description><![CDATA[<p>Die Deklaration der Klasse habe ich schon, die hab ich hier nur nicht gepostet weils die IMHO nicht braucht.</p>
<p>Hast du ein Beispiel, wo's das class braucht?</p>
<p>forward declaration als Templateparameter:<br />
D.h. damit die Templateklasse (hier shared_ptr) meine übergebene Klasse (hier Node) kennt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727616</guid><dc:creator><![CDATA[Yarrow]]></dc:creator><pubDate>Tue, 16 Jun 2009 13:13:56 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 13:22:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;typename T&gt;
class Test1
{
};

int main()
{
    Test1&lt;class Test2&gt; test;
}

class Test2
{
};
</code></pre>
<p>Aber eigentlich macht man sowas nicht und ich hab sowas auch noch nie in einem Code gesehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727621</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Tue, 16 Jun 2009 13:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 13:52:03 GMT]]></title><description><![CDATA[<p>Ich meine ein Beispiel mit einem shared_ptr, wo das class beim Templateargument angegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727649</guid><dc:creator><![CDATA[Yarrow]]></dc:creator><pubDate>Tue, 16 Jun 2009 13:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 14:11:49 GMT]]></title><description><![CDATA[<p>Könnte nicht sowas ein Anwendungsfall sein?</p>
<pre><code class="language-cpp">boost::shared_ptr&lt;class MyClass&gt; ptr;

class MyClass
{
    // ...
};

ptr.reset(new MyClass());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1727661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727661</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 16 Jun 2009 14:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 17:25:03 GMT]]></title><description><![CDATA[<p>Yarrow schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Meinste das wird bei shared_ptr anders sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727755</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Tue, 16 Jun 2009 17:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 17:38:50 GMT]]></title><description><![CDATA[<p>Wenn ich eine eigene Templateklasse programmiere, schreibe ich da ... &quot;&lt;typename T&gt;&quot;, wobei früher &quot;&lt;class T&gt;&quot; verwendet wurde. Daher sollte also &quot;typedef boost::shared_ptr&lt;class T&gt;&quot; auf's selbe rauskommen wie &quot;boost::shared_ptr&lt;typename T&gt;&quot;.. Mit typename läuft's aber nicht, daher denke ich, dass da schon was anders läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727759</guid><dc:creator><![CDATA[Yarrow]]></dc:creator><pubDate>Tue, 16 Jun 2009 17:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 17:52:12 GMT]]></title><description><![CDATA[<p>Mit typename funktioniert es nicht ? Und was hab ich in meinem Beispiel gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727768</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Tue, 16 Jun 2009 17:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 18:02:57 GMT]]></title><description><![CDATA[<p>Darum sag ich ja, dass dein Beispiel mein Problem nicht löst. Hättest du's ausprobiert, hättest du's auch gemerkt.</p>
<p>typedef boost::shared_ptr&lt;class Node&gt; NodePtr; &lt;&lt;-- Funktioniert<br />
typedef boost::shared_ptr&lt;typename Node&gt; NodePtr; &lt;&lt;-- Funktioniert NICHT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727781</guid><dc:creator><![CDATA[Yarrow]]></dc:creator><pubDate>Tue, 16 Jun 2009 18:02:57 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 18:27:45 GMT]]></title><description><![CDATA[<p>weil typename auch nicht dafür da ist...</p>
<p>das class dort wird aber einfach als forward-declaration interpretiert - und somit geht da alles klar...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727798</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 16 Jun 2009 18:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wozu &amp;quot;class&amp;quot; in boost::shared_ptr? on Tue, 16 Jun 2009 18:28:38 GMT]]></title><description><![CDATA[<p>Ehm, es tut mir ja leid, aber erkennst du den unterschied wirklich nicht?</p>
<pre><code class="language-cpp">template&lt;typename T&gt;  // (1)
class Test0
{
};

template&lt;class T&gt;     // (2)
class Test1
{
};

int main()
{
  Test0&lt;class Foo&gt; var;  // (3)
}
</code></pre>
<p>(1) Klassentemplate-Deklaration<br />
(2) Klassentemplate-Deklaration<br />
(3) Variablendefinition mit <em>Forward Declaration</em> von der Klasse <code>Foo</code> .</p>
<p>Eine vorwärts deklaration wird nunmal mit <code>class</code> gemacht. Die vorwärts Deklaration hat auch nichts mit Templates zu tun. Sie wird in diesem Fall einfach gleich als Templateparameter angegeben. Man könnte (3) auch anders schreiben:</p>
<pre><code class="language-cpp">class Foo; // vorwärts Deklaration vorgelagert.

int main()
{
  Test0&lt;Foo&gt; var;  // (3)
}
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727799</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 16 Jun 2009 18:28:38 GMT</pubDate></item></channel></rss>