<?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[Objekt typ rausfinden über die basis klasse!!]]></title><description><![CDATA[<pre><code class="language-cpp">struct A{

}

struct B : public A{

}

struct C : public A{

}

CTypPtrArray&lt;CTypedPtr,A*&gt; array;

// Schreiben
array.Add(new B());
array.Add(new C());

//Lesen
A *p= array.ElementAt(0);
</code></pre>
<p>nun wie bekomm ich raus ob A == B ist oder A == C ??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166022/objekt-typ-rausfinden-über-die-basis-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 06:46:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166022.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Nov 2006 11:54:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 11:54:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct A{

}

struct B : public A{

}

struct C : public A{

}

CTypPtrArray&lt;CTypedPtr,A*&gt; array;

// Schreiben
array.Add(new B());
array.Add(new C());

//Lesen
A *p= array.ElementAt(0);
</code></pre>
<p>nun wie bekomm ich raus ob A == B ist oder A == C ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181167</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sat, 25 Nov 2006 11:54:55 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 11:59:12 GMT]]></title><description><![CDATA[<p>dynamic_cast. Meist ist aber die Tatsache, dass du das überhaupt herausfinden musst (oder glaubst, das zu müssen), ein Indiz für ein schlechtes Design.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181170</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sat, 25 Nov 2006 11:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 12:04:42 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Meist ist aber die Tatsache, dass du das überhaupt herausfinden musst (oder glaubst, das zu müssen), ein Indiz für ein schlechtes Design.</p>
</blockquote>
<p>kannst du das begründen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181174</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sat, 25 Nov 2006 12:04:42 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 12:10:21 GMT]]></title><description><![CDATA[<p>Pasuchal sagen, das es falsch ist, ist falsch. <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 hat es einen Grund, das er vergleichen will?</p>
<p>Andererseits sollte man ihn erstmal fragen, WARUM er vergleichen will? Dann kommt vielleicht ans Tageslicht, ob er ein falsches Design hat und die Sache falsch angeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181179</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 25 Nov 2006 12:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 12:25:17 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>MFK schrieb:</p>
<blockquote>
<p>Meist ist aber die Tatsache, dass du das überhaupt herausfinden musst (oder glaubst, das zu müssen), ein Indiz für ein schlechtes Design.</p>
</blockquote>
<p>kannst du das begründen?</p>
</blockquote>
<p>Weil es in C++ fricklig ist (instanceof gibt's ja nicht), ergo schlechtes Design <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="😃"
    /> <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/1181192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181192</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sat, 25 Nov 2006 12:25:17 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 13:16:06 GMT]]></title><description><![CDATA[<p>naja ... in dem Array sind die B objekte und C objekte immer im wechsel drin...</p>
<p>über den Index kann ich natürlich rausfinden ob es ein B oder C objekt ist</p>
<p>ist dient nur zu sicherheit um ein fehler anzuziegen falls das array druch irgend ein grund falsc strukturiert wird, um im vorfeld den fehler abzufangen!</p>
<p>es gibt imm unvorhersehbare problem welcher den speicehrbereih des array manipulieren könnten...</p>
<p>kurz gesagt, die B objekte sind immer ungerade indizies und C gerade, und will trozdme nochmal checken ob es auch wirklich der typ ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181213</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sat, 25 Nov 2006 13:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 13:52:38 GMT]]></title><description><![CDATA[<p>GPC schrieb:</p>
<blockquote>
<p>net schrieb:</p>
<blockquote>
<p>MFK schrieb:</p>
<blockquote>
<p>Meist ist aber die Tatsache, dass du das überhaupt herausfinden musst (oder glaubst, das zu müssen), ein Indiz für ein schlechtes Design.</p>
</blockquote>
<p>kannst du das begründen?</p>
</blockquote>
<p>Weil es in C++ fricklig ist (instanceof gibt's ja nicht), ergo schlechtes Design <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="😃"
    /> <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>aha, und wenn einer in C objektorientiert codet ist das auch schlechtes design? <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 />
na denn...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181235</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sat, 25 Nov 2006 13:52:38 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 17:00:05 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Pasuchal sagen, das es falsch ist, ist falsch. <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>Genau. Deswegen sagte ich &quot;meist&quot; und &quot;Indiz&quot; <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>BorisDieKlinge schrieb:</p>
<blockquote>
<p>naja ... in dem Array sind die B objekte und C objekte immer im wechsel drin...</p>
</blockquote>
<p>Du hast aber hoffentlich nicht B und C nur deswegen von A abgeleitet, damit du sie gemeinsam in dieses Array packen kannst, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181343</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sat, 25 Nov 2006 17:00:05 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 18:39:54 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Du hast aber hoffentlich nicht B und C nur deswegen von A abgeleitet, damit du sie gemeinsam in dieses Array packen kannst, oder?</p>
</blockquote>
<p>mal angenommen, man möchte das aber unbedingt so haben (alles objekte in einem array, liste, etc.). gibt es denn eine andere möglichkeit als vererbung?<br />
alles als void* zu speichern ist ja noch blöder...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181390</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sat, 25 Nov 2006 18:39:54 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 18:44:03 GMT]]></title><description><![CDATA[<p>ja ein meinem fall will ich zwei verscheidne typen in einem array speichern!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181394</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sat, 25 Nov 2006 18:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 19:23:19 GMT]]></title><description><![CDATA[<p>BorisDieKlinge ist ein Frickler der allerübelsten Sorte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181420</guid><dc:creator><![CDATA[KennerDerKlinge]]></dc:creator><pubDate>Sat, 25 Nov 2006 19:23:19 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 20:29:46 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>MFK schrieb:</p>
<blockquote>
<p>Du hast aber hoffentlich nicht B und C nur deswegen von A abgeleitet, damit du sie gemeinsam in dieses Array packen kannst, oder?</p>
</blockquote>
<p>mal angenommen, man möchte das aber unbedingt so haben (alles objekte in einem array, liste, etc.). gibt es denn eine andere möglichkeit als vererbung?<br />
alles als void* zu speichern ist ja noch blöder...</p>
</blockquote>
<p>Man kann sich mal eben was zusammenhacken:</p>
<pre><code class="language-cpp">struct AorB {
   enum {typeA, typeB} type;

   AorB (A const &amp; a)
      : type (typeA)
      , b (0)
   {
      new (memory) A (a);
      this-&gt;a = reinterpret_cast&lt;A*&gt;(memory);
   }

   AorB (B const &amp; b)
      : type (typeB)
      , a (0)
   {
      new (memory) B (b);
      this-&gt;b = reinterpret_cast&lt;B*&gt;(memory);
   }

   ~AorB ()
   {
      if (type == typeA)
         a-&gt;~A();
      else
         b-&gt;~B();
   }

   AorB &amp; operator = (A const &amp; a);
   AorB &amp; operator = (B const &amp; B);

   AorB (AorB cosnt &amp;); 
   AorB &amp; operator = (AorB cosnt &amp;); 
private:
   char memory [sizeof(A)&gt;sizeof(B)?sizeof(A):sizeof(B)];
   A * a;
   B * b;
};
</code></pre>
<p>oder man nimmt boost::any oder die beste Möglichkeit: boost::variant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181435</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sat, 25 Nov 2006 20:29:46 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 20:40:49 GMT]]></title><description><![CDATA[<p>Helium schrieb:</p>
<blockquote>
<p>Man kann sich mal eben was zusammenhacken:</p>
</blockquote>
<p>hehe, lustiger trick mit diesem 'placement new' usw. <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 />
hast du dir das mal eben selbst ausgedacht oder wird sowas allgemein in c++ so gemacht?<br />
naja, ist wohl umständlich zu erweitern, wenn noch 'ne dritte oder vierte klasse dazu soll...</p>
<p>Helium schrieb:</p>
<blockquote>
<p>oder man nimmt boost::any oder die beste Möglichkeit: boost::variant.</p>
</blockquote>
<p>ich will ja nicht wissen, wie *das* gehackt ist <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1181448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181448</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sat, 25 Nov 2006 20:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 20:58:20 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>hast du dir das mal eben selbst ausgedacht oder wird sowas allgemein in c++ so gemacht?</p>
</blockquote>
<p>Ich hatte mir irgendwann mal überlegt, wie man genau das hier besprochene Problem lösen könnte. Erst hatte ich 'ne union, aber die funktioniert ja nur mit primitiven Typen, und dann ist mir eben das eingefallen. Natürlich hatte ich mir das als Template gebaut, statt mit den konkreten Typen A und B.<br />
(Da gabs noch kein boost::variant.)</p>
<p>Aber allgemein würde ich vorschlagen einfach boost::variant zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181453</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sat, 25 Nov 2006 20:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sat, 25 Nov 2006 21:08:18 GMT]]></title><description><![CDATA[<p>Helium schrieb:</p>
<blockquote>
<p>Aber allgemein würde ich vorschlagen einfach boost::variant zu verwenden.</p>
</blockquote>
<p>oder diese eingebauten features 'dynamic_cast' und 'typeid' ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181456</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Sat, 25 Nov 2006 21:08:18 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sun, 26 Nov 2006 00:23:12 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>Helium schrieb:</p>
<blockquote>
<p>Aber allgemein würde ich vorschlagen einfach boost::variant zu verwenden.</p>
</blockquote>
<p>oder diese eingebauten features 'dynamic_cast' und 'typeid' ...</p>
</blockquote>
<p>Du solltest dir erstmal anschauen was boost::variant ist. Zu boost::any würde deine Aussage bedingt passen, aber zu boost::variant nicht.</p>
<p>boost::any ist nicht gehackt, es ist sehr sauber und typsicher implementiert.</p>
<p>Edit:</p>
<p>Zu empfehlen ist folgendes Buch</p>
<p><a href="https://duckduckgo.com/?q=isbn+0321133544&amp;cppnetbooks" rel="nofollow">Beyond the C++ Standard Library | ISBN: 0321133544</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181513</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sun, 26 Nov 2006 00:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sun, 26 Nov 2006 11:31:50 GMT]]></title><description><![CDATA[<p>was ist ein Frickler ??? -&gt;KennerDerKlinge</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181607</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sun, 26 Nov 2006 11:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt typ rausfinden über die basis klasse!! on Sun, 26 Nov 2006 15:35:00 GMT]]></title><description><![CDATA[<p>ein Frickler ist jemand der frickelt. Frickeln bedeutet zurechtbasteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181723</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sun, 26 Nov 2006 15:35:00 GMT</pubDate></item></channel></rss>