<?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[container für objekte verschieden types]]></title><description><![CDATA[<p>hallo,</p>
<p>ich komme aus der java welt und da gibt es einen sehr praktischen container namens vector. darin kann ich objekte verschiedener typen ablegen und darauf zugreifen. nun meine frage, gibt es etwas ähnliches in c++? zur erklärung ein kurzes beispiel, wie das in java funktioniert:</p>
<pre><code class="language-java">class A{
// some code
}

class B{
// some code
}

class C{
  void doSomething(A aObject, B bObject){
    Vector myVect=new Vector();
    myVect.add(aObject);
    myVect.add(bObject);
    ...
  }
}
</code></pre>
<p>besten dank im voraus</p>
<p>hans</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/139685/container-für-objekte-verschieden-types</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 17:26:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/139685.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Mar 2006 14:45:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to container für objekte verschieden types on Wed, 08 Mar 2006 14:45:09 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich komme aus der java welt und da gibt es einen sehr praktischen container namens vector. darin kann ich objekte verschiedener typen ablegen und darauf zugreifen. nun meine frage, gibt es etwas ähnliches in c++? zur erklärung ein kurzes beispiel, wie das in java funktioniert:</p>
<pre><code class="language-java">class A{
// some code
}

class B{
// some code
}

class C{
  void doSomething(A aObject, B bObject){
    Vector myVect=new Vector();
    myVect.add(aObject);
    myVect.add(bObject);
    ...
  }
}
</code></pre>
<p>besten dank im voraus</p>
<p>hans</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011654</guid><dc:creator><![CDATA[hanswurschtus]]></dc:creator><pubDate>Wed, 08 Mar 2006 14:45:09 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Wed, 08 Mar 2006 14:51:35 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>da ich kein Java kann, weiß ich nicht genau ob dir das weiter hilft, aber in C++ gibt es Vectoren.<br />
Schau dir mal das an, vielleicht hilft dir das weiter.</p>
<p><a href="http://www.uni-muenster.de/ZIV/Mitarbeiter/ReinhardMersch/C++BasisKurs4.html" rel="nofollow">http://www.uni-muenster.de/ZIV/Mitarbeiter/ReinhardMersch/C++BasisKurs4.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011661</guid><dc:creator><![CDATA[EEK]]></dc:creator><pubDate>Wed, 08 Mar 2006 14:51:35 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Wed, 08 Mar 2006 16:28:59 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>erst mal danke für die schnelle antwort. ich habe mir den link angeschaut und bin gleich auf eine aussage getroffen, die ich schon vermutet habe :<br />
...<br />
<em>Ein Vektor ist ein Reihe von Komponenten (Objekten) desselben Typs.</em><br />
...<br />
was ich aber suche wäre ein container für objekte verschiedenen typs. also beispielsweise wo ich einen <strong>int</strong> und einen <strong>double</strong> reintuen kann (nur eben keinen int und double, sondern objekte)</p>
<p>hans</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011784</guid><dc:creator><![CDATA[hanswurschtus]]></dc:creator><pubDate>Wed, 08 Mar 2006 16:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Wed, 08 Mar 2006 16:47:54 GMT]]></title><description><![CDATA[<p>hanswurschtus schrieb:</p>
<blockquote>
<p>hallo,</p>
<p>erst mal danke für die schnelle antwort. ich habe mir den link angeschaut und bin gleich auf eine aussage getroffen, die ich schon vermutet habe :<br />
...<br />
<em>Ein Vektor ist ein Reihe von Komponenten (Objekten) desselben Typs.</em><br />
...<br />
was ich aber suche wäre ein container für objekte verschiedenen typs. also beispielsweise wo ich einen <strong>int</strong> und einen <strong>double</strong> reintuen kann (nur eben keinen int und double, sondern objekte)</p>
<p>hans</p>
</blockquote>
<p>variablen des typs int oder double SIND objekte in C++ - nur sind sie eben keine instanzen einer klasse. generizität wird in template basierenden container generell nicht durch dadurch erreicht, dass alle möglichen inhaltstypen teil einer klassenhierarchie sind, somit ist auch das &quot;boxing&quot; von einfachen typen nicht notwendig. für den genannten zweck gibt es mehrere lösungsmöglichkeiten, z.b. existieren in boost die any und variant container, die als elemente eines vectors dienen können. oder aber man fügt tatsächlich alle möglichen elementtypen in eine klassenhierarchie und baut dann einen vector&lt;basis*&gt; bzw. vector&lt;shared_ptr&lt;basis*&gt; &gt; bzw. ptr_vector&lt;basis&gt; etc.<br />
ein vector&lt;void*&gt; wäre ebenfalls denkbar, dann muss man die typinformationen allerdings gesondert speichern. oder man baut eine einfache nichtpolymorphe klasse mit void* und typ-infofeld und macht daraus einen vector (das ist im grunde die primitive hands-on version von any/variant). die günstigste lösung wird wie immer vom einsatzzweck - der hier nicht erläutert wurde - abhängen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1011808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1011808</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 08 Mar 2006 16:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Thu, 09 Mar 2006 07:49:57 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>danke für die antwort, leider habe ich das nicht 100%ig verstanden. aber egal, ich erkläre mal was ich machen will. ich möchte ein art interface machen, von dem dann klassen abgeleitet werden können. das interface hat eine methode <strong>doSometing</strong> der als parameter eine menge von objekten übergeben werden können. die klasse selbst muss dann wissen, welche objekte übergeben wurden und was sie damit machen muss.<br />
ich schreibe mal den java code her, was ich haben möchte in java, da ich nicht weiss, wie ich das in c++ lösen könnte.</p>
<pre><code class="language-java">class A{
  //something
}

class B{
  // something
}

interface Base{
  void doSomething(Vector vectorOfObjects);
}

class BaseExtension implements Base{
  void doSomething(Vector vectorOfObjects){
    //this class must know, which objects are in the vector and how to handle it
  }
}

class OtherBaseExtension implements Base{
  void doSomething(Vector vectorOfObjects){
    // this class must know too,
    // which objects are in the vector and how to handle it
  }
}

class Caller{
  void doIt(){
    A a=new A();
    B b=new B();
    Vector v1=new Vector();
    v1.add(a);
    v1.add(b);
    Base worker1=new BaseExtension();
    worker1.doSomething(v1);
    // das gleiche sollte auch mit OtherBaseExtension gehen
    Vector v2=new Vector();
    v2.add(new String(&quot;OtherBaseExtension Class&quot;);
    v2.add(b);
    Base worker2=new OtherBaseExtension();
    worker2.doSomething(v2);
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1012191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1012191</guid><dc:creator><![CDATA[hanswurschtus]]></dc:creator><pubDate>Thu, 09 Mar 2006 07:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Thu, 09 Mar 2006 08:03:00 GMT]]></title><description><![CDATA[<p>Ich würde alle &quot;Something&quot;-Klassen von einer gemeinsamen Basisklasse ableiten und dann einen vector&lt;Base*&gt; herumreichen.</p>
<p>(und die möglichen Operationen funktionieren am besten über virtuelle Methoden dieser Basisklasse)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1012196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1012196</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 09 Mar 2006 08:03:00 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Thu, 09 Mar 2006 08:10:03 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ich würde alle &quot;Something&quot;-Klassen von einer gemeinsamen Basisklasse ableiten und dann einen vector&lt;Base*&gt; herumreichen.</p>
<p>(und die möglichen Operationen funktionieren am besten über virtuelle Methoden dieser Basisklasse)</p>
</blockquote>
<p>Jo und da das dynamisch wird, beim Entfernen von Elementen nicht das delete vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1012202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1012202</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Thu, 09 Mar 2006 08:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Thu, 09 Mar 2006 08:30:19 GMT]]></title><description><![CDATA[<p>hanswurschtus! Das was du machen willst, ist böse. Sowohl vom Standpunkt der allgemeinen Programmierung als auch in Java! Das was C++ schon lange kann, hat Java erst mit Java 1.5 eingeführt. In Java 1.5 kannst du auch &quot;nur&quot; Objekte eines bestimmten Typs in einen Vector speichern. Und das zu Recht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1012213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1012213</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 09 Mar 2006 08:30:19 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Thu, 09 Mar 2006 08:45:32 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>...variablen des typs int oder double SIND objekte in C++...</p>
</blockquote>
<p>Bedeutet das dann für dich das in C++ alle Typen Objekte sind. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1012226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1012226</guid><dc:creator><![CDATA[Redhead]]></dc:creator><pubDate>Thu, 09 Mar 2006 08:45:32 GMT</pubDate></item><item><title><![CDATA[Reply to container für objekte verschieden types on Thu, 09 Mar 2006 13:51:31 GMT]]></title><description><![CDATA[<p>Redhead schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>...variablen des typs int oder double SIND objekte in C++...</p>
</blockquote>
<p>Bedeutet das dann für dich das in C++ alle Typen Objekte sind. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>alles, was speicher braucht, ist ein objekt. wohlgemerkt, speicher im sinne des speichermodells, das C++ benutzt. nat. benötigt ausführbarer code ebenfalls speicher, aber functionen selbst sind keine objekte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1012486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1012486</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 09 Mar 2006 13:51:31 GMT</pubDate></item></channel></rss>