<?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[Ist das ein Designpattern?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Basisklasse A, von der B und C abgeleitet sind. Nun habe ich eine Klasse Foo, mit folgender Struktur:</p>
<pre><code class="language-cpp">class Foo {
public:
A* a;
B* b;
C* c;
void bar() { a-&gt;bar(); }
};
</code></pre>
<p>Innerhalb von Foo allokiere ich ein B und C Objekt (die logischerweise von b und c referenziert werden). Foo bietet eine Methode an um zu bestimmen, worauf der Zeiger a zeigt (auf b oder c). Die Methode bar() von Foo() ruft dann immer die passende Methode auf, abhängig davon worauf a gerade zeigt.</p>
<p>Meine dazu simple Frage: Ist dieses Konstrukt zufällig einem Design Pattern ähnlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209848/ist-das-ein-designpattern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 02:22:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209848.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Apr 2008 00:34:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ist das ein Designpattern? on Fri, 04 Apr 2008 00:34:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Basisklasse A, von der B und C abgeleitet sind. Nun habe ich eine Klasse Foo, mit folgender Struktur:</p>
<pre><code class="language-cpp">class Foo {
public:
A* a;
B* b;
C* c;
void bar() { a-&gt;bar(); }
};
</code></pre>
<p>Innerhalb von Foo allokiere ich ein B und C Objekt (die logischerweise von b und c referenziert werden). Foo bietet eine Methode an um zu bestimmen, worauf der Zeiger a zeigt (auf b oder c). Die Methode bar() von Foo() ruft dann immer die passende Methode auf, abhängig davon worauf a gerade zeigt.</p>
<p>Meine dazu simple Frage: Ist dieses Konstrukt zufällig einem Design Pattern ähnlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1486141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486141</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Fri, 04 Apr 2008 00:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Ist das ein Designpattern? on Fri, 04 Apr 2008 01:44:35 GMT]]></title><description><![CDATA[<p>ja, mehrere sogar. da kommt es aber darauf an, was du vorhast. (Strategy? State?)</p>
<p>andere frage: B und C scheinen von A abgeleitet zu sein (?), warum also extra referenzen auf ein B und C objekt speichern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1486145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486145</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Fri, 04 Apr 2008 01:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to Ist das ein Designpattern? on Fri, 04 Apr 2008 02:21:36 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<p>ja, mehrere sogar. da kommt es aber darauf an, was du vorhast. (Strategy? State?)</p>
</blockquote>
<p>Hm, das Strategy Pattern ist in der Tat sehr ähnlich zu meinem Konstrukt.</p>
<p>queer_boy schrieb:</p>
<blockquote>
<p>andere frage: B und C scheinen von A abgeleitet zu sein (?), warum also extra referenzen auf ein B und C objekt speichern?</p>
</blockquote>
<p>Ja, B und C sind Subklassen von A. Die extra Referenzen habe ich, weil B und C noch einiges mehr können und die Initialisierung recht aufwändig ist (ich will also nur ein einziges new machen und dann nie wieder). Über Foo kann man dann die Attribute von b und c ändern und mittels Foo::bar() immer das bar() der gerade &quot;aktiven&quot; Klasse (sprich das, auf was a zeigt) aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1486147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486147</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Fri, 04 Apr 2008 02:21:36 GMT</pubDate></item></channel></rss>