<?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[Statische Instanz einer Template Klasse in der Template Klasse]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>In C++ kann man ja statische Instanzen einer Klasse selber erstellen.</p>
<pre><code>//Foo.h
class Foo
{
public:
    static Foo foo;
};

//Foo.cpp
Foo Foo::foo;
</code></pre>
<p>Nun habe ich jedoch eine Template-Klasse von der ich eine statische Instanz brauche:</p>
<pre><code>//Foo.h
template&lt;typename T&gt; class Foo
{
public:
    static Foo&lt;T&gt; foo;
};

//Foo.cpp
template class Foo&lt;int&gt;;
//... weitere
</code></pre>
<p>Doch wie definiere ich jetzt den statischen Member?<br />
Und es wäre schön, wenn es auch eine Möglichkeit gäbe den ebenfalls in foo.cpp zu definieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Auf Antwort hoffend,<br />
Qwerty</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311817/statische-instanz-einer-template-klasse-in-der-template-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 09:39:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311817.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 15 Dec 2012 13:59:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Statische Instanz einer Template Klasse in der Template Klasse on Sat, 15 Dec 2012 13:59:21 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>In C++ kann man ja statische Instanzen einer Klasse selber erstellen.</p>
<pre><code>//Foo.h
class Foo
{
public:
    static Foo foo;
};

//Foo.cpp
Foo Foo::foo;
</code></pre>
<p>Nun habe ich jedoch eine Template-Klasse von der ich eine statische Instanz brauche:</p>
<pre><code>//Foo.h
template&lt;typename T&gt; class Foo
{
public:
    static Foo&lt;T&gt; foo;
};

//Foo.cpp
template class Foo&lt;int&gt;;
//... weitere
</code></pre>
<p>Doch wie definiere ich jetzt den statischen Member?<br />
Und es wäre schön, wenn es auch eine Möglichkeit gäbe den ebenfalls in foo.cpp zu definieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Auf Antwort hoffend,<br />
Qwerty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2280348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280348</guid><dc:creator><![CDATA[Qwerty123]]></dc:creator><pubDate>Sat, 15 Dec 2012 13:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Instanz einer Template Klasse in der Template Klasse on Sat, 15 Dec 2012 14:01:35 GMT]]></title><description><![CDATA[<pre><code>//Foo.h 
template&lt;typename T&gt; class Foo 
{ 
public: 
    static Foo&lt;T&gt; foo; 
}; 

//Foo.cpp 
template&lt;typename T&gt;
Foo&lt;T&gt; Foo&lt;T&gt;::foo()
{
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2280351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280351</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 15 Dec 2012 14:01:35 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Instanz einer Template Klasse in der Template Klasse on Sat, 15 Dec 2012 14:02:37 GMT]]></title><description><![CDATA[<p>template&lt; typename T &gt;<br />
Foo&lt;T&gt; Foo&lt;T&gt;::foo;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2280352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280352</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 15 Dec 2012 14:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Instanz einer Template Klasse in der Template Klasse on Sat, 15 Dec 2012 14:12:08 GMT]]></title><description><![CDATA[<p>Ja, daran hatte ich auch zuerst gedacht.<br />
Entwender ich mache einen Zugriffsfehler oder bin einfach nur blöd...<br />
Wenn ich versuche in main so darauf zuzugreifen:</p>
<pre><code>Foo&lt;int&gt;::foo.bar();
</code></pre>
<p>Meckert der Compiler, dass er Foo&lt;int&gt;::foo nicht kennt.<br />
Schreibe ich das in die Headerdatei, meckert er, dass er die Funktion nicht kennt.<br />
Erzeuge ich ganz normal ein Objekt:</p>
<pre><code>Foo&lt;int&gt; foo;
foo.bar();
</code></pre>
<p>Ist alles in Ordnung.<br />
Was mache ich falsch?<br />
Qwerty123</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2280359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280359</guid><dc:creator><![CDATA[Qwerty123]]></dc:creator><pubDate>Sat, 15 Dec 2012 14:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Instanz einer Template Klasse in der Template Klasse on Sat, 15 Dec 2012 17:39:59 GMT]]></title><description><![CDATA[<p>soweit ich das jetzt beurteilen konnte, greifst du auf die falsche Ebene zu.<br />
Wenn ich ein template x&lt;T&gt; habe muss ich doch zangsläufig immer</p>
<pre><code>x&lt;T&gt;::WhatEver
</code></pre>
<p>schreiben.</p>
<p>Wenn du das mit einem statischen Member schachtelst, müsstest du also</p>
<pre><code>x&lt;T&gt;::myX&lt;T&gt;
</code></pre>
<p>schreiben.</p>
<p>Zumal warscheinlich hier noch das Problem hinzukommt, dass dein Member (warum auch immer) static ist. Wenn du dem Compiler jetzt sagst ich will den Member ansprechen wird dieser nicht wissen welchen Typ er braucht. Ich kan zwar sagen</p>
<pre><code>Foo&lt;int&gt;::foo
</code></pre>
<p>foo kann aber vorher schon mit irgendwas anderem definiert worden sein und so aussehen</p>
<pre><code>Foo&lt;int&gt;::foo&lt;float&gt;
</code></pre>
<p>von daher ist das Konstrukt an sich schon ziemlich inkonsistent.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2280436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280436</guid><dc:creator><![CDATA[Pria]]></dc:creator><pubDate>Sat, 15 Dec 2012 17:39:59 GMT</pubDate></item></channel></rss>