<?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 mit Oberklasse Zeigern]]></title><description><![CDATA[<p>Sers!</p>
<p>Wenn ich folgende Klassen habe:</p>
<pre><code class="language-cpp">class A { };
class B : public A { };

class Container {
public:
   virtual ??? getAContainer() = 0;
};

class ContainerDerived : public Container {

public:
   std::map&lt;std::string, B*&gt; mBMap;

   virtual ??? getAContainer() {
       return mBMap; ??
   }

};
</code></pre>
<p>Im ContainerDerived habe ich also eine Map mit B Zeigern. Jedes B ist ja ein A. In der Superklasse Container brauch ich jetzt Zugriff auf die ganzen B, allerdings über die A Schnittstelle (Container kennt nur A!).</p>
<p>Also Container soll Zugriff auf eine map mit A Zeigern kriegen. Wie könnte man das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288225/container-mit-oberklasse-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 02:19:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288225.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Jun 2011 18:21:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Sun, 12 Jun 2011 18:21:12 GMT]]></title><description><![CDATA[<p>Sers!</p>
<p>Wenn ich folgende Klassen habe:</p>
<pre><code class="language-cpp">class A { };
class B : public A { };

class Container {
public:
   virtual ??? getAContainer() = 0;
};

class ContainerDerived : public Container {

public:
   std::map&lt;std::string, B*&gt; mBMap;

   virtual ??? getAContainer() {
       return mBMap; ??
   }

};
</code></pre>
<p>Im ContainerDerived habe ich also eine Map mit B Zeigern. Jedes B ist ja ein A. In der Superklasse Container brauch ich jetzt Zugriff auf die ganzen B, allerdings über die A Schnittstelle (Container kennt nur A!).</p>
<p>Also Container soll Zugriff auf eine map mit A Zeigern kriegen. Wie könnte man das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077234</guid><dc:creator><![CDATA[Kobiashwili]]></dc:creator><pubDate>Sun, 12 Jun 2011 18:21:12 GMT</pubDate></item><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Mon, 13 Jun 2011 08:18:47 GMT]]></title><description><![CDATA[<p>Deine Basisklasse soll auf Membervariablen einer von ihr abgeleiteten Klasse zugreifen? Das geht nicht.</p>
<p>Du könntest höchsten in Container A-Zeiger speichern und die im getter von ContainerDerived versuchen dynamisch runterzucasten.</p>
<p>Jenachdem, was du vor hast, musst du dafür aber nicht direkt den Container ableiten, weils ne andere Memberfunktion da auch täte.</p>
<p>Kannst du erklären, warum du das willst? Vielleicht lässt sich dann ja eine elegantere Lösung finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077350</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Mon, 13 Jun 2011 08:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Mon, 13 Jun 2011 12:38:34 GMT]]></title><description><![CDATA[<p>...sieht nach dinem Fehl-Design aus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077443</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 13 Jun 2011 12:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Mon, 13 Jun 2011 12:44:20 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>...sieht nach dinem Fehl-Design aus...</p>
</blockquote>
<p>Danke für diesen nutzlosen Kommentar.</p>
<p>Hier wird schnell mit dem Fehl-Design!!!!11 Hammer geschwungen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077446</guid><dc:creator><![CDATA[Kobiashwili]]></dc:creator><pubDate>Mon, 13 Jun 2011 12:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Mon, 13 Jun 2011 13:24:32 GMT]]></title><description><![CDATA[<p>Nutzlos fand ich Krümelkackers Kommentar nicht. Weil ich ähnliches vermutet hatte, habe ich ja die entsprechende Frage gestellt.</p>
<p>(Nicht Jammern, sondern nur mal kurz drüber nachdenken, ob er Recht haben könnte. ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077447</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Mon, 13 Jun 2011 13:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Mon, 13 Jun 2011 13:29:07 GMT]]></title><description><![CDATA[<p>Kobiashwili schrieb:</p>
<blockquote>
<p>Also Container soll Zugriff auf eine map mit A Zeigern kriegen. Wie könnte man das machen?</p>
</blockquote>
<p>C++ unterstützt kovariante Return-Typen:</p>
<pre><code class="language-cpp">class A {};
class B : public A {};

class Container
{
public:
   virtual A* get(const std::string&amp; name) = 0;
};

class ContainerDerived : public Container 
{
private:
  std::map&lt;std::string, B*&gt; mBMap;
public:
  virtual B* get(const std::string&amp; name)
  {
    ...
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2077457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077457</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 13 Jun 2011 13:29:07 GMT</pubDate></item><item><title><![CDATA[Reply to Container mit Oberklasse Zeigern on Mon, 13 Jun 2011 15:55:14 GMT]]></title><description><![CDATA[<p>ups... Das wolltest du wohl nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077459</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Mon, 13 Jun 2011 15:55:14 GMT</pubDate></item></channel></rss>