<?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[template liste]]></title><description><![CDATA[<p>hiho hab folgendes problem:<br />
error C2227: Links<br />
muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.</p>
<p>und mein zweites problem:<br />
wie binde ich friend in Node ein ?</p>
<p>hier der quellcode (ausschnitt)</p>
<pre><code class="language-cpp">template &lt;typename T&gt; class CNode{
	private:
		T* pItem;
		CNode&lt;T&gt;* pNext;
	public:
		T* getItem(){ return pItem; }
		CNode&lt;T&gt;* getNext() { return pNext; }
		//friend class CList; &lt;--- wie binde ich den ein ?
		CNode(){pItem = NULL; pNext = NULL;}	// Konstruktur für neuen Knoten
};

template&lt;typename T&gt; class CList{
	private:
		CNode&lt;T&gt;* pHead;	        //Listenanfang
		CNode&lt;T&gt;* pCurrentNode;
	public:

...
		T* getItem(){ return pCurrentNode-&gt;getItem(); }	//liefert Zeiger auf aktuelles objekt
};
</code></pre>
<p>mein aufruf in der main:</p>
<pre><code class="language-cpp">...
	CList&lt;CObject*&gt; Objects;
...
        if(Objects.getItem()-&gt;getNumbers() == sNumber); &lt;--- fehler code 2227
</code></pre>
<p>vielen dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181851/template-liste</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 11:05:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181851.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 May 2007 07:41:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 07:41:12 GMT]]></title><description><![CDATA[<p>hiho hab folgendes problem:<br />
error C2227: Links<br />
muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.</p>
<p>und mein zweites problem:<br />
wie binde ich friend in Node ein ?</p>
<p>hier der quellcode (ausschnitt)</p>
<pre><code class="language-cpp">template &lt;typename T&gt; class CNode{
	private:
		T* pItem;
		CNode&lt;T&gt;* pNext;
	public:
		T* getItem(){ return pItem; }
		CNode&lt;T&gt;* getNext() { return pNext; }
		//friend class CList; &lt;--- wie binde ich den ein ?
		CNode(){pItem = NULL; pNext = NULL;}	// Konstruktur für neuen Knoten
};

template&lt;typename T&gt; class CList{
	private:
		CNode&lt;T&gt;* pHead;	        //Listenanfang
		CNode&lt;T&gt;* pCurrentNode;
	public:

...
		T* getItem(){ return pCurrentNode-&gt;getItem(); }	//liefert Zeiger auf aktuelles objekt
};
</code></pre>
<p>mein aufruf in der main:</p>
<pre><code class="language-cpp">...
	CList&lt;CObject*&gt; Objects;
...
        if(Objects.getItem()-&gt;getNumbers() == sNumber); &lt;--- fehler code 2227
</code></pre>
<p>vielen dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287180</guid><dc:creator><![CDATA[template problem]]></dc:creator><pubDate>Fri, 18 May 2007 07:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 09:07:18 GMT]]></title><description><![CDATA[<p>Zum Fehler: Besitzt denn die Klasse CObject eine Methode getNumbers()?</p>
<p>@friends:<br />
CList ist keine Klasse, sondern ein Template - und du mußt schon dazusagen, welche Spezialisierung davon du als Freund haben willst:</p>
<pre><code class="language-cpp">template&lt;typename T&gt; class CList;//Forward-Deklaration

template&lt;typename T&gt;
class CNode
{
  ...
public:
  friend class CList&lt;T&gt;;
  ...
};

template&lt;typename T&gt;
class CList
{...};
</code></pre>
<p>(übrigens würde ich die Node als Subklasse von CList anlegen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287219</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 18 May 2007 09:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 09:29:15 GMT]]></title><description><![CDATA[<p>CNode&lt;CObject*&gt;::getItem() und CList&lt;CObject*&gt;::getItem() liefern ein CObject**.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287237</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 18 May 2007 09:29:15 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 11:03:03 GMT]]></title><description><![CDATA[<p>danke cstoll für die den friend hinweiß <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
die deklaration hat gefällt</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Zum Fehler: Besitzt denn die Klasse CObject eine Methode getNumbers()?</p>
</blockquote>
<p>int getNumbers() const { return num; }</p>
<p>kann mir jemand weiterhelfen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287305</guid><dc:creator><![CDATA[nochmal]]></dc:creator><pubDate>Fri, 18 May 2007 11:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 11:09:00 GMT]]></title><description><![CDATA[<p>Na dann greift wohl noch der Hinweis von MFK (den Punkt hatte ich wohl übersehen) - du bekommst einen Doppelpointer, den du auch <strong>doppelt</strong> dereferenzieren müsstest: <code>(*(Objekts.GetItem))-&gt;getNumbers()</code></p>
<p>(alternativ könntest du die GetItem()-Methoden so umbauen, daß sie einen T&amp; zurückgeben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287310</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 18 May 2007 11:09:00 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 11:36:32 GMT]]></title><description><![CDATA[<p>i'm so sry bin grad neben der kappe aber müüst heut damit fertig werden.</p>
<p>hab nun es so gemacht:</p>
<pre><code class="language-cpp">template &lt;class T&gt; class CList;
template &lt;class T&gt; class CNode{
	private:
		T pItem;
		CNode&lt;T&gt;* pNext;
	public:
		...
};

template&lt;class T&gt; class CList{
	private:
		CNode&lt;T&gt;* pHead;	        //Listenanfang
		CNode&lt;T&gt;* pCurrentNode;
	public:
		...
		bool add(T element);
		...

};

template &lt;typename T&gt; bool CList&lt;T&gt;::add(T element){
	CNode* pNewNode;

	try{ pNewNode = new CNode; }					
	catch(bad_alloc){								
		cout &lt;&lt; &quot;Fehler bei Allozierung&quot; &lt;&lt; endl;	
		abort();								
	}

	pNewNode-&gt;pNext = pHead;
	pNewNode-&gt;pItem = element;
	pHead = pNewNode;

	return 1;
}
</code></pre>
<p>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol<br />
&quot;public: bool __thiscall CList&lt;class CObject *&gt;::add(class CObject *)&quot;</p>
<p>i'm so sry aber was is nu los -.- ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287330</guid><dc:creator><![CDATA[template problem]]></dc:creator><pubDate>Fri, 18 May 2007 11:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 11:38:16 GMT]]></title><description><![CDATA[<p>ah und der aufruf:</p>
<p>ObjectList.add(ptrObject);</p>
<p>ptrObject ist ein Zeiger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287333</guid><dc:creator><![CDATA[template problem]]></dc:creator><pubDate>Fri, 18 May 2007 11:38:16 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 11:54:17 GMT]]></title><description><![CDATA[<p>Stehen die Funktionen denn alle zusammen im Header? Wenn nicht, solltest du das ändern (sonst kann der Compiler die benötigten Template-Instanzen nicht zusammenbauen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287344</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 18 May 2007 11:54:17 GMT</pubDate></item><item><title><![CDATA[Reply to template liste on Fri, 18 May 2007 12:00:18 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287346</guid><dc:creator><![CDATA[template problem]]></dc:creator><pubDate>Fri, 18 May 2007 12:00:18 GMT</pubDate></item></channel></rss>