<?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[Templates und OOP]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich fand im Web keine Antwort und erstelle hier mal einen doffen Anfänger beitrag <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="😃"
    /></p>
<p>1.) Kann ich eine Klasse als abstract definieren? Ich beabsichtige eine Klasse als abstract zu behandeln (Basis für weitere Klassen) obwohl sie zur Zeit keine nicht implementierte virtuelle Methode besitzt.</p>
<p>2.) Templates und das eigentliche Thema <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="😉"
    /> Ich definiere eine Klasse und setze vor der class ein Template z.B.</p>
<pre><code class="language-cpp">template&lt;Class T&gt;
</code></pre>
<p>So. Jetzt soll es nur möglich sein für T nur eine Klasse zu verwenden die von der Schnittstelle, Basisklasse oder abstrakten Klasse (je nach dem <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="😉"
    /> ) Foo abstammt bzw. bei &quot;Basisklasse&quot; eine Instanz von dieser ist. Was muss ich hier veränderen und wie?</p>
<p>Was bewirkt</p>
<pre><code class="language-cpp">template&lt;Foo T&gt;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222241/templates-und-oop</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 23:32:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222241.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Sep 2008 18:43:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 18:43:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich fand im Web keine Antwort und erstelle hier mal einen doffen Anfänger beitrag <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="😃"
    /></p>
<p>1.) Kann ich eine Klasse als abstract definieren? Ich beabsichtige eine Klasse als abstract zu behandeln (Basis für weitere Klassen) obwohl sie zur Zeit keine nicht implementierte virtuelle Methode besitzt.</p>
<p>2.) Templates und das eigentliche Thema <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="😉"
    /> Ich definiere eine Klasse und setze vor der class ein Template z.B.</p>
<pre><code class="language-cpp">template&lt;Class T&gt;
</code></pre>
<p>So. Jetzt soll es nur möglich sein für T nur eine Klasse zu verwenden die von der Schnittstelle, Basisklasse oder abstrakten Klasse (je nach dem <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="😉"
    /> ) Foo abstammt bzw. bei &quot;Basisklasse&quot; eine Instanz von dieser ist. Was muss ich hier veränderen und wie?</p>
<p>Was bewirkt</p>
<pre><code class="language-cpp">template&lt;Foo T&gt;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579426</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Tue, 09 Sep 2008 18:43:19 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 18:49:03 GMT]]></title><description><![CDATA[<p>1.) eine klasse ist abstract wenn mindestens eine methode pure virtual ist also:</p>
<p>void Class::Foo() = 0;</p>
<p>im gegensatz zu java wird das allerdings nicht im klassendeklarationskopf gesagt</p>
<p>java:<br />
public abstract class Foo { }</p>
<p>C++:<br />
class Foo { }</p>
<p>ausserdem kann man von abstrakten klassen keine isntanzen (objekte) bilden</p>
<p>also das hier geht NICHT mehr<br />
Foo b;</p>
<p>zu 2.) kann ich nichts sagen</p>
<p>aber soweit ich weis kannst du nicht für T nur klassen einsetzen, sodnern jeden (abstrakten) datentyp<br />
und das mit der vererbung ist meines wissens auch quatsch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579427</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 09 Sep 2008 18:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 18:52:10 GMT]]></title><description><![CDATA[<p>Kommst du aus Java/C#?</p>
<p>Siassei schrieb:</p>
<blockquote>
<p>1.) Kann ich eine Klasse als abstract definieren?</p>
</blockquote>
<p>Eine Klasse gilt automatisch als abstrakt, wenn sie rein virtuelle Methoden besitzt. Du kannst auch den Destruktor rein virtuell machen.</p>
<p>Siassei schrieb:</p>
<blockquote>
<p>Jetzt soll es nur möglich sein für T nur eine Klasse zu verwenden die von der Schnittstelle, Basisklasse oder abstrakten Klasse (je nach dem <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="😉"
    /> ) Foo abstammt bzw. bei &quot;Basisklasse&quot; eine Instanz von dieser ist. Was muss ich hier veränderen und wie?</p>
</blockquote>
<p>Das entspricht nicht dem Konzept von Templates. Templates sind Vorlagen für Klassen, es können also alle Typen eingesetzt werden. Das, was du benötigst, ist einfache Vererbung; du sollst einfach eine Basisklasse erstellen, von der du dann ableiten kannst.[/quote]</p>
<p>P.S.</p>
<pre><code class="language-cpp">class MyClass {};
</code></pre>
<p>wird nicht durch</p>
<pre><code class="language-cpp">template &lt;class MyClass&gt; {};
</code></pre>
<p>zum Template. Informier dich noch ein wenig mehr über Templates.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579429</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 09 Sep 2008 18:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 19:20:24 GMT]]></title><description><![CDATA[<p>Hallo Nexus,</p>
<p>danke für deinen Beitrag, aber ich glaube mein Post war zu kurz <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>
<pre><code class="language-cpp">class Foo {
/*
...
*/

virtual Foo getNext();
</code></pre>
<p>Die Klasse Foo soll nun als Basisklasse dienen. Bei der Implementation von weiteren Kindklassen möchte ich nun, dass sich die getNext - Methode automatisch den Rückgabetype an die jeweilige Klasse anpasst.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class KindVonFoo : Foo {
/*
...
*/

virtual KindVonFoo getNext();
</code></pre>
<p>In Java hab ich folgende Möglichkeit mit Generics</p>
<pre><code class="language-java">public abstract class Foo&lt;T extends Foo&gt; {

  /**
    ...
  */

  private T next;

  T getNext() { return next; }
}

public class KindVonFoo extends Foo&lt;KindVonFoo&gt; {
  // bla bla bla
}
</code></pre>
<p>Der Rückgabetype T wird somit automatisch den von mir gewählten Typ <strong>[edit]KindVonFoo[/edit]</strong> angepasst. Das müssten doch in C++ die Templates sein, oder? Deklariere ich nun folgendes im Header</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class Foo
{
//
}
</code></pre>
<p>kann ich für T jeden beliebigen Typ einsetzen. Ich möchte jedoch den Typ für T auf die Basisklasse selbst oder später vielleicht auch an eine andere Schnittstelle begrenzen</p>
<p>Ich hoffe dass ich mich verständlich ausgedrückt habe <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1579444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579444</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Tue, 09 Sep 2008 19:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 19:09:04 GMT]]></title><description><![CDATA[<p>du willst also das template von der abstrakten klasse ableiten ?</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class MeineTolleNeueKlasse : Foo
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1579445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579445</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Tue, 09 Sep 2008 19:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 19:12:11 GMT]]></title><description><![CDATA[<p>Hallo helferlein,</p>
<p>jeep, da ich in der abstrakten Klasse bereits ein paar Mehtoden implementiere und die abgeleitete Klasse die restlichen plus ein paar eigene hinzu fügt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579446</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Tue, 09 Sep 2008 19:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 19:36:34 GMT]]></title><description><![CDATA[<p>@ Nexus Ich hab mir noch mal den Abschnitt zu Templates (C++ von A bis Z vom Jürgen) reingezogen und ich denke das ich auf den richtigen Weg bin <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="😉"
    /> Leider hat er meinen Anwendungsfall irgendwie übersprungen.</p>
<pre><code class="language-cpp">template&lt;class T&gt;
// ...

template&lt;class T, int A = 50&gt;
// ...
</code></pre>
<p>Leider finde ich hier keinen Hinweis, wie ich die Class auf eine Basisklasse oder Interface begrenzen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579454</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Tue, 09 Sep 2008 19:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 19:45:52 GMT]]></title><description><![CDATA[<p>Siassei schrieb:</p>
<blockquote>
<p>Leider finde ich hier keinen Hinweis, wie ich die Class auf eine Basisklasse oder Interface begrenzen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Nennt sich in C++ Spezialisierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579457</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 09 Sep 2008 19:45:52 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 20:09:35 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Siassei schrieb:</p>
<blockquote>
<p>Leider finde ich hier keinen Hinweis, wie ich die Class auf eine Basisklasse oder Interface begrenzen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Nennt sich in C++ Spezialisierung.</p>
</blockquote>
<p>Schauen wir mal ob ich es kapiert habe. Da stand ich wieder mal auf dem Schlauch <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="😃"
    /></p>
<pre><code class="language-cpp">template&lt;Foo T&gt;
class Foo {
/*
...
*/

virtual T getNext();
}

template&lt;KindVonFoo T&gt;
class KindVonFoo : Foo&lt;T&gt; {
/*
...
*/

T getEineMethode();
}
</code></pre>
<p>Was gibt jetzt die geerbte Methode getNext() der Klasse KindVonFoo zurück? Eine Foo-Klasse oder wie von mir gewünscht eine KindVonFoo - Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579465</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Tue, 09 Sep 2008 20:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 20:35:52 GMT]]></title><description><![CDATA[<p>templates auf bestimmte Typen zu beschränken geht meines Wissens erst mit Concepts im nächsten Standard.<br />
Und ehrlich gesagt, kann daran liegen, dass ich nebenbei fernschaue, aber ich verstehe net was du willst?<br />
Aber für mich hört sich das nach einem Fall für Polymorphie an, oder du verwendest ein Template und schmeißt die Basisklasse raus, wenn die Klasse die falsche Schnittstelle hat, kriegst du sowieso einen Compilerfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579475</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Tue, 09 Sep 2008 20:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 20:39:25 GMT]]></title><description><![CDATA[<p>Das ist noch nicht ganz richtig.<br />
Nochmal nachlesen. <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>Aber warum probierst du das nichtmal zu compilen. Dann siehst du ob du auf dem richtigen Weg bist. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1579477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579477</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 09 Sep 2008 20:39:25 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 21:03:26 GMT]]></title><description><![CDATA[<p>Hallo drakon,</p>
<p>naja, ich möchte es ohne compilieren in Erfahrung bringen. Der Grund hierfür ist denkbar einfach. Eine automatische Typenanpassung erkennt man z.B. nur sehr schwer <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>Deutet deine Antwort darauf hin, dass ich entweder das Template für einen bestimmten Type setzen kann oder alle Typen zu lasse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579490</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Tue, 09 Sep 2008 21:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 21:39:45 GMT]]></title><description><![CDATA[<blockquote>
<p>naja, ich möchte es ohne compilieren in Erfahrung bringen. Der Grund hierfür ist denkbar einfach. Eine automatische Typenanpassung erkennt man z.B. nur sehr schwer</p>
</blockquote>
<p>?!<br />
Du kannst mal sehen, was der Compiler zu deinem Code meint. Der hilft vielfach um rein syntaktische Fehler zu erkennen. Dein Code ist einfach schon mal schlichtweg falsch. Der Compiler wird dir dann sagen, was daran falsch ist und auch in etwa warum.<br />
Dann kannst du nochmal nachlesen und dann wird dir irgendwann der Sinn dahinter klar.</p>
<p>Wenn du dich ein wenig mehr mit Templates, Compiletime Polymorphie beschäftigst, wirst du in etwa das erreichen, was du willst.</p>
<p>Ich würde dir aber empfehlen zuerst mal ein paar einfache Sachen mit Templates anzustellen. (z.B eine Vektorklasse für beliebige Typen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579494</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 09 Sep 2008 21:39:45 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Tue, 09 Sep 2008 22:16:46 GMT]]></title><description><![CDATA[<p>Zu Templates gibts übrigens auch einen schönen Artikel: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-128361.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-128361.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579496</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 09 Sep 2008 22:16:46 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 18:05:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für den schönen Beitrag von hier <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="🙂"
    /> Aber irgendwie komme ich nicht weiter. Wieso ist Foo nicht definiert (gut das sehe ich noch ein) bzw. &quot;Foo is not a type&quot;?</p>
<p>Scheinbar geht das nicht und ich kann aus keinem Dokument lesen wieso? Für eine Antwort wäre ich sehr dankbar. Und zurück zu meinen Problem &quot;Wie kann ich in C++ Typensicher programmieren?&quot;. In Java gibt's es seit 1.5 die Generics wie im meinen Beispielcode von vorher zu sehen war. Wie realisiere ich sowas in C++?</p>
<pre><code>template&lt;Foo T&gt;
class Foo
{

	private:
		T *vari;

	public:
		Foo();

		~Foo();

		T&amp; getVariRef();

};

#endif

template&lt;Foo T&gt;
Foo&lt;T&gt;::Foo()
{
}

template&lt;Foo T&gt;
Foo&lt;T&gt;::~Foo()
{
}

template&lt;Foo T&gt;
T&amp; Foo&lt;T&gt;::getVariRef()
{
	return this-&gt;getVariRef();
}

template&lt;FooChild T&gt;
class FooChild : Foo&lt;T&gt;
{

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1579906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579906</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Wed, 10 Sep 2008 18:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 18:08:43 GMT]]></title><description><![CDATA[<p>Achja ich hab mich noch gar nicht über meine Umgebung geäusert <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>Linux KUbuntu<br />
gcc</p>
<p>Als IDE werde ich KDevelop ein. Leider bin ich nicht so ganz mit der automatischen Codegeneration bzw. des Popups-Menü zufrieden. Da wurde ich von Java mit Netbeans gerade zu verwöhnt <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="😉"
    /> Das ist wohl in C++ etwas ... <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="😃"
    /></p>
<p>Die Fragen aus meinen letzten Post sind nach wie vor offen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1579908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579908</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Wed, 10 Sep 2008 18:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 18:48:32 GMT]]></title><description><![CDATA[<p>template&lt;Foo T&gt;<br />
das ist nicht was du denkst.<br />
Du übergibst hier keinen Typ.<br />
Typübergabe geht nur mit class oder typename.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579922</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Wed, 10 Sep 2008 18:48:32 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 19:08:17 GMT]]></title><description><![CDATA[<p>Was soll eigentlich der Sinn dahinter sein ein template zu machen und es dann auf GENAU einen Typen festzunageln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579931</guid><dc:creator><![CDATA[void*]]></dc:creator><pubDate>Wed, 10 Sep 2008 19:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 19:25:32 GMT]]></title><description><![CDATA[<p>void* schrieb:</p>
<blockquote>
<p>Was soll eigentlich der Sinn dahinter sein ein template zu machen und es dann auf GENAU einen Typen festzunageln?</p>
</blockquote>
<p>Einen Type und alle Kindklassen von diesem Typ.<br />
Der Sinn? <strong>Typensicheres programmieren</strong>. Bei der Kindklasse sollte sich der Typ T automatisch nach FooChild wandeln -&gt; erstelle ich eine Instanz der FooChild Klasse so gibt mir FooChild-&gt;getVariRef() automatisch FooChild zurück. Vielleicht nicht das beste Beispiel <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="😃"
    /> In Java und C# ohne Probleme möglich in C++ komme ich nicht drauf.</p>
<p>Kennt das hier keiner? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579940</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Wed, 10 Sep 2008 19:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 19:39:05 GMT]]></title><description><![CDATA[<p>Ich verstehe immer noch nicht warum du keine Polymorphie verwendest, wenn dir das so wichtig ist.</p>
<p>Und Typsicher ist es sowieso.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579943</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Wed, 10 Sep 2008 19:39:05 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 20:13:33 GMT]]></title><description><![CDATA[<p>Ich schreibe hier mal ein Java - Beispiel. Hoffentlich könnt ihr das lesen <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="😉"
    /> und mir ein paar Tipps für eine C++ Umsetzung geben <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>
<pre><code class="language-java">interface Knoten&lt;T&gt; {
T getParent();
T getChild();
}

class TreeElement&lt;E extends TreeElement, T&gt; implements Knoten&lt;T&gt; {
// Irgendwelche Hilfsmethoden
public E getElement() { return this; }
}

class Blatt&lt;T&gt; extends TreeElement&lt;Blatt, T&gt; {
//
}

class Zweig&lt;T&gt; extends TreeElement&lt;Zweig, T&gt; {
//
}
</code></pre>
<p>So, in den Klassen Blatt und Zweig werden nun alle mit E Deklarierten Typen der TreeElement - Klasse an Blatt bzw. Zweig angepasst. TreeElement ist keine abstrakte Klasse und es kann somit auch eine Instanz hier von erstellt werden. Hier wäre der Rückgabewert E vom Typ TreeElement.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579957</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Wed, 10 Sep 2008 20:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 20:17:24 GMT]]></title><description><![CDATA[<p>Du gehst das falsch an. Du darfst einer Sprache keinen anderen Stil aufzwingen. Löse es besser mit C++ Mitteln und Vorgehensweisen. Sonst kannst du ja Java nehmen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1579966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579966</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 10 Sep 2008 20:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 20:20:12 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Du gehst das falsch an. Du darfst einer Sprache keinen anderen Stil aufzwingen. Löse es besser mit C++ Mitteln und Vorgehensweisen. Sonst kannst du ja Java nehmen. <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>
</blockquote>
<p>Ich habe nicht vor C++ irgend etwas auf zu zwingen <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="😉"
    /> Wie löse ich das in C++? Ich dachte immer das C++ objektorientierte Programmierung unterstützt, aber ausser Klassen und Vererbung hab ich da kein weiteres Konzept aus OOP gefunden.</p>
<p>Also, wie löse ich das in C++?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579967</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Wed, 10 Sep 2008 20:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 20:32:18 GMT]]></title><description><![CDATA[<p>jetzt musst du dich aber entscheiden.<br />
Entweder du benutzt generische Programmierung und damit Templates.<br />
Oder du gehst rein OOP und benutzt Polymorphie, wie Java in seinen frühen Tagen.</p>
<p>Bei deinem Beispiel hab ich das Problem, dass ich nicht verstehe was du mit T willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579975</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Wed, 10 Sep 2008 20:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 20:41:52 GMT]]></title><description><![CDATA[<p>T ist irgendeine Klasse. Auf das Beispiel bezogen: Eine Klasse die von der Baumstruktur gespeichert und verwaltet wird. Wieder ein schlechtes Beispiel <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="😉"
    /> Vielleicht liegt es daran, dass ich am Abend nicht mehr so klar denken kann, da ich bereits um 4 Uhr aufstehe <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/1579984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579984</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Wed, 10 Sep 2008 20:41:52 GMT</pubDate></item><item><title><![CDATA[Reply to Templates und OOP on Wed, 10 Sep 2008 20:48:07 GMT]]></title><description><![CDATA[<blockquote>
<p>Entweder du benutzt generische Programmierung und damit Templates.<br />
Oder du gehst rein OOP und benutzt Polymorphie</p>
</blockquote>
<p>Generische Programmierung ist ebenfalls eine Art Polymorphie. Einfach eine, die zur Kompilierzeit aufgelöst wird und nicht zur Laufzeit, wie, was du wahrscheinlich unter den Namen Polymorphie verstehst, mit virtuellen Funktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579988</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 10 Sep 2008 20:48:07 GMT</pubDate></item></channel></rss>