<?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 mit verschachtelten objekten]]></title><description><![CDATA[<p>Hallo ihr Freunde des Programmierens!</p>
<p>Ich hab ein Problem undzwar hab ich hier 3 verschachtelte template Objekte.<br />
-&gt;LE und List ... hier ein auszug aus der Liste (LE hat ein value und ein zeiger auf das nächste element)</p>
<pre><code class="language-cpp">#include &quot;LE.h&quot;

template&lt;typename type&gt;
class List{

/////////////////////////////////////////////////////////
//Attribute
public:LE&lt;type&gt; * first ;
public :LE&lt;type&gt; * last;
unsigned int size;

/////////////////////////////////////////////////////////
//Konstruktor
public: List(){
size=0;
first=0;
last=0;

}
//...
void append(type nvalue){
	LE&lt;type&gt;* nele = new LE&lt;type&gt;(0,nvalue);

	if(size==0){
		first=nele;
		last=nele;
	}
	else{
		last-&gt;next=nele;
		last=last-&gt;next;

	}

	size++; //größe merken

}
//...
};
</code></pre>
<p>das soll mal eine Hashtabelle werden... ich probier mich daran gerade aus</p>
<p>und ich hab jetz die eigentliche Hashtabelle die die liste(n) dann in einem Array ablegt.</p>
<pre><code class="language-cpp">#include &quot;List.cpp&quot;

template&lt;typename type&gt;
class Hasht{

type * value;
int size;

public : Hasht(int size){

value= new type[size];

	for(int i=0;i&lt;size;i++){
		value[i]=List&lt;type&gt;();

	}
}

};
</code></pre>
<p>jetz zu dem problem:</p>
<p>wenn ich das hasht objekt erzeugen will wie muss ich das machen? der will einen template typ haben aber ich will ja das der nur weitere objekte anlegt... wie kann ich das am besten machen? bzw. von welchem typ soll ich das hasht tamplate erzeugen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;hasht.cpp&quot;

int main(){
Hasht&lt;type&gt;* ht = new Hasht&lt;type&gt;(5); //oder ohne template?

//geht nicht... hier kommt ein fehler

}
</code></pre>
<p>danke schonmal! <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/236390/template-mit-verschachtelten-objekten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 22:14:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236390.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Mar 2009 13:51:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template mit verschachtelten objekten on Sat, 14 Mar 2009 13:52:07 GMT]]></title><description><![CDATA[<p>Hallo ihr Freunde des Programmierens!</p>
<p>Ich hab ein Problem undzwar hab ich hier 3 verschachtelte template Objekte.<br />
-&gt;LE und List ... hier ein auszug aus der Liste (LE hat ein value und ein zeiger auf das nächste element)</p>
<pre><code class="language-cpp">#include &quot;LE.h&quot;

template&lt;typename type&gt;
class List{

/////////////////////////////////////////////////////////
//Attribute
public:LE&lt;type&gt; * first ;
public :LE&lt;type&gt; * last;
unsigned int size;

/////////////////////////////////////////////////////////
//Konstruktor
public: List(){
size=0;
first=0;
last=0;

}
//...
void append(type nvalue){
	LE&lt;type&gt;* nele = new LE&lt;type&gt;(0,nvalue);

	if(size==0){
		first=nele;
		last=nele;
	}
	else{
		last-&gt;next=nele;
		last=last-&gt;next;

	}

	size++; //größe merken

}
//...
};
</code></pre>
<p>das soll mal eine Hashtabelle werden... ich probier mich daran gerade aus</p>
<p>und ich hab jetz die eigentliche Hashtabelle die die liste(n) dann in einem Array ablegt.</p>
<pre><code class="language-cpp">#include &quot;List.cpp&quot;

template&lt;typename type&gt;
class Hasht{

type * value;
int size;

public : Hasht(int size){

value= new type[size];

	for(int i=0;i&lt;size;i++){
		value[i]=List&lt;type&gt;();

	}
}

};
</code></pre>
<p>jetz zu dem problem:</p>
<p>wenn ich das hasht objekt erzeugen will wie muss ich das machen? der will einen template typ haben aber ich will ja das der nur weitere objekte anlegt... wie kann ich das am besten machen? bzw. von welchem typ soll ich das hasht tamplate erzeugen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;hasht.cpp&quot;

int main(){
Hasht&lt;type&gt;* ht = new Hasht&lt;type&gt;(5); //oder ohne template?

//geht nicht... hier kommt ein fehler

}
</code></pre>
<p>danke schonmal! <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/1679863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679863</guid><dc:creator><![CDATA[Mizukage]]></dc:creator><pubDate>Sat, 14 Mar 2009 13:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to template mit verschachtelten objekten on Sat, 14 Mar 2009 14:06:53 GMT]]></title><description><![CDATA[<p>Naja du erzeugst ein Hasht objekt von dem Typen den du haben willst zum beispiel Int, wobei Hashwerte doch eh immer eine Mischung aus int und char ist oder? naja auch egal.Erzeuge doch erstmal eine int-Hasht</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;hasht.cpp&quot;

int main(){
Hasht&lt;int&gt;* ht = new Hasht&lt;int&gt;(5); //oder ohne template?

//geht nicht... hier kommt ein fehler

}
</code></pre>
<p>So oder?</p>
<p>Achja .cpp datei einbinden ist nicht gerade sinnvoll, man bindet eher immer .h dateien der Klasse ein und lagert die implementation der Klasse in eine .cpp aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679873</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Sat, 14 Mar 2009 14:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to template mit verschachtelten objekten on Sat, 14 Mar 2009 14:55:02 GMT]]></title><description><![CDATA[<p>Mizukage schrieb:</p>
<blockquote>
<p>Hallo</p>
</blockquote>
<p>Hi - lass mich raten: Du hast bis jz immer nur Java programmiert!?</p>
<pre><code class="language-cpp">template&lt;typename type&gt;
class List
{
public:
   List ();
   LE&lt;type&gt; * first;
   LE&lt;type&gt; * last;
private:
   unsigned int size;
};
</code></pre>
<p>So sieht das doch schon sehr viel leserlicher aus!?<br />
Btw: Wozu brauchst du denn first, last UND size? es reichen 2 davon ^^ (sinnigerweise nicht last und size, aber first/last oder first/size ist imho geschmackssache ^^)</p>
<pre><code class="language-cpp">public: List(){
size=0;
first=0;
last=0;
}
</code></pre>
<p>Für so was gibts ne Initialisierungsliste... Und Einrücken wär echt auch mal ne Idee gewesen - wenn dus selbst nicht brauchst - ich seh so echt 0 in deinem Code durch &gt;&lt; (vor allem, da die Dateinamen au noch ein wenig suboptimal gewählt sind ^^)</p>
<pre><code class="language-cpp">Hasht&lt;type&gt;* ht = new Hasht&lt;type&gt;(5);
//Würde ich so machen:
Hasht&lt;type&gt; ht(5); //wobei type dann nat. durch den jeweiligen typen zu ersetzen ist - aber ich denke, du weist, wie man templates einsetzt ^^
</code></pre>
<blockquote>
<pre><code class="language-cpp">#include &quot;hasht.cpp&quot;
</code></pre>
</blockquote>
<p>Wie der Feuerwehrmann schon gesagt hat: Das ist doof ^^<br />
Man sollte das nicht nur nicht machen, man DARF es gar NICHT - die IDE compiliert jede *.cpp einzeln - du wirst dann am Ende vom Linker ne Fehlermeldung erhalten, dass die Fkt xyz scho ma definiert wurde und er sie aber noch mal hat oder so was in der richtung...<br />
Normalerweise included man den header in der cpp und überall, wo man die klasse/fkt braucht, included man nur den header - und dem verpasst man noch includeguards...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679896</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 14 Mar 2009 14:55:02 GMT</pubDate></item><item><title><![CDATA[Reply to template mit verschachtelten objekten on Mon, 16 Mar 2009 01:09:18 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15364">@firefighter</a>:</p>
<p>ich will ja den wert.. int z.B. ja in dem &quot;LE&quot; haben also das letzte verschachtelte objekt... bin mir jetz nochnich ganz so sicher wie ich das mache.. werds morgen (heute..später) mal probieren <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>
<p>unskilled schrieb:</p>
<blockquote>
<p>Hi - lass mich raten: Du hast bis jz immer nur Java programmiert!?<br />
&gt; auch..zusammen mit cpp <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="😉"
    /></p>
<p>So sieht das doch schon sehr viel leserlicher aus!?</p>
<p>&gt; mmh ich finds leserlich ... aber schon möglich das es so besser ist ich bin in der hinsicht offen <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>
<p>Btw: Wozu brauchst du denn first, last UND size? es reichen 2 davon ^^ (sinnigerweise nicht last und size, aber first/last oder first/size ist imho geschmackssache ^^)</p>
<p>&gt; also first und size wollte ich haben.. last ist/war optional sozusagen ^^</p>
<pre><code class="language-cpp">public: List(){
size=0;
first=0;
last=0;
}
</code></pre>
<p>Für so was gibts ne Initialisierungsliste... Und Einrücken wär echt auch mal ne Idee gewesen - wenn dus selbst nicht brauchst - ich seh so echt 0 in deinem Code durch &gt;&lt; (vor allem, da die Dateinamen au noch ein wenig suboptimal gewählt sind ^^)</p>
<p>&gt; initialisierungsliste? bisher hab ich das so wie mein prof gemacht... entweder in der parameterliste initialisiert oder halt wie oben ...<br />
lass mir aber immer gerne neue (für mich neue) konzepte beibringen <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>
<pre><code class="language-cpp">Hasht&lt;type&gt;* ht = new Hasht&lt;type&gt;(5);
//Würde ich so machen:
Hasht&lt;type&gt; ht(5); //wobei type dann nat. durch den jeweiligen typen zu ersetzen ist - aber ich denke, du weist, wie man templates einsetzt ^^
</code></pre>
<p>&gt; ah danke das bringt mich weiter!</p>
<blockquote></blockquote>
<pre><code class="language-cpp">#include &quot;hasht.cpp&quot;
</code></pre>
<p>Wie der Feuerwehrmann schon gesagt hat: Das ist doof ^^<br />
Man sollte das nicht nur nicht machen, man DARF es gar NICHT - die IDE compiliert jede *.cpp einzeln - du wirst dann am Ende vom Linker ne Fehlermeldung erhalten, dass die Fkt xyz scho ma definiert wurde und er sie aber noch mal hat oder so was in der richtung...<br />
Normalerweise included man den header in der cpp und überall, wo man die klasse/fkt braucht, included man nur den header - und dem verpasst man noch includeguards...</p>
<p>&gt; ok header dateien.... includeguards? meinst du macros (#ifndef _KLASSE_A__ #def ...)?</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1680634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1680634</guid><dc:creator><![CDATA[Mizukage]]></dc:creator><pubDate>Mon, 16 Mar 2009 01:09:18 GMT</pubDate></item></channel></rss>