<?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[Basisklasse tObject?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei C++ zu lernen und habe früher viel mit Delphi gearbeitet. Zur Übung und gewöhnung an die andere Sprache wollte ich mich mal an ein paar einfachen Sachen probieren, wie das Programmieren von typischen Verwaltungsstrukturen Liste, Baum etc. in C++. Jetzt habe ich gleich schon ein Problem: In Delphi konnte ich es so machen, dass ich in meiner Liste ein völlig unbekanntes Objekt speichern konnte, indem ich als Dateityp einfach tObject angegeben habe und es dann erst beim wirklichen benutzen mittels einer Typumwandlung als Objekt dieser Klasse deklarieren musste. Bei C++ habe ich das nun auch versucht indem ich einfach einen Zeiger auf ein Objekt vom Typ void gespeichert habe, allerdings lässt dieses sich später nicht mehr als Objekt einer bestimmten Klasse casten! Gibt es trotzdem eine möglichkeit, wie ich eine universelle Liste schreiben kann, in der ich was auch immer speichern kann, ohne die Liste verändern zu müssen, wenn ich sie zu einem anderen Zweck einsetzen will?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300744/basisklasse-tobject</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 16:11:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300744.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Mar 2012 15:58:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Basisklasse tObject? on Fri, 09 Mar 2012 15:58:14 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei C++ zu lernen und habe früher viel mit Delphi gearbeitet. Zur Übung und gewöhnung an die andere Sprache wollte ich mich mal an ein paar einfachen Sachen probieren, wie das Programmieren von typischen Verwaltungsstrukturen Liste, Baum etc. in C++. Jetzt habe ich gleich schon ein Problem: In Delphi konnte ich es so machen, dass ich in meiner Liste ein völlig unbekanntes Objekt speichern konnte, indem ich als Dateityp einfach tObject angegeben habe und es dann erst beim wirklichen benutzen mittels einer Typumwandlung als Objekt dieser Klasse deklarieren musste. Bei C++ habe ich das nun auch versucht indem ich einfach einen Zeiger auf ein Objekt vom Typ void gespeichert habe, allerdings lässt dieses sich später nicht mehr als Objekt einer bestimmten Klasse casten! Gibt es trotzdem eine möglichkeit, wie ich eine universelle Liste schreiben kann, in der ich was auch immer speichern kann, ohne die Liste verändern zu müssen, wenn ich sie zu einem anderen Zweck einsetzen will?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190181</guid><dc:creator><![CDATA[Pedd0r]]></dc:creator><pubDate>Fri, 09 Mar 2012 15:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse tObject? on Fri, 09 Mar 2012 16:10:35 GMT]]></title><description><![CDATA[<p>In C++ gibt es was viel besseres! Mit Templates kann man typunabhängigen Code schreiben. Der konkrete Typ wird dann bei Bedarf eingesetzt und dann konkreter Code für diesen Typ erzeugt. Ja, klingt erst einmal kompliziert, ist es auch ein bisschen, wenn man es selber macht. Musst du aber nicht! Es gibt zahlreiche fertige Datenstrukturen in der Standardbibliothek, die man sehr komfortabel und mit größtenteils gleichem Interface (zumindest da wo es Sinn macht) benutzen kann.</p>
<p>Zum Beispiel der vielgenutzte std::vector, der ein dynamisch wachsendes Feld darstellt:</p>
<pre><code class="language-cpp">#include &lt;vector&gt; // In diesem Header ist Templatecode für std::vector

class my_class {};

int main()
{
  std::vector&lt;int&gt; foo; // foo ist nun so eine Datenstrukur in der man ints speichern kann.
  std::vector&lt;my_class&gt; bar; // in bar kann man Objekte vom Typ my_class speichern
}
</code></pre>
<p>Guck zum Beispiel mal hier:<br />
<a href="http://www.cplusplus.com/reference/stl/" rel="nofollow">http://www.cplusplus.com/reference/stl/</a></p>
<p>In C++11 (oder auch in C++98+TR1) sind auch noch ein paar mehr fertige Container dazu gekommen, die auf der Seite nicht aufgeführt sind. Am wichtigsten davon wohl std::array.</p>
<p>Merke: In C++ musst du nur bei hochkomplexen Problemen eigene Datenstrukturen erstellen. Alles was man im Alltag so braucht gibt es schon fertig in der Standardbibliothek und ist für (fast) alle Typen adaptierbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190185</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 09 Mar 2012 16:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse tObject? on Fri, 09 Mar 2012 16:16:17 GMT]]></title><description><![CDATA[<p>Noch eine Warnung (bin selbst Borland/VCL geschädigt):<br />
Alle von TObject abgeleiteten Klassen lassen sich nur per <code>new</code> auf dem Heap erzeugen. In C++ ist das nicht die Regel, sondern eher die Ausnahme. Komm´ also bitte nicht auf die Idee, alle Objekte auf dem Heap zu erzeugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2190187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190187</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 09 Mar 2012 16:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse tObject? on Fri, 09 Mar 2012 16:20:01 GMT]]></title><description><![CDATA[<p>okay, super, danke. Ich werd mich da mal reinfuchsen <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/2190188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2190188</guid><dc:creator><![CDATA[Pedd0r]]></dc:creator><pubDate>Fri, 09 Mar 2012 16:20:01 GMT</pubDate></item></channel></rss>