<?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[Desing frage (Vererbung)]]></title><description><![CDATA[<p>Folgende Konstellation:</p>
<pre><code class="language-cpp">class Basis{

int X;
int Y;
.
.
.

};

class A: public Basis{
.
.
};
class B: public Basis{
.
.
};
class C: public Basis{
.
.
};
class D: public Basis{
.
.
};
</code></pre>
<p>so nun will ich in allen subklasen A-D die Variable X aus Basis verwenden.. soweit kein problem. nun will ich aber die Variable Y nur in A-C verwenden drüfen, und nich in D! geht das ???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177301/desing-frage-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 22:19:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177301.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Mar 2007 03:32:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 03:32:41 GMT]]></title><description><![CDATA[<p>Folgende Konstellation:</p>
<pre><code class="language-cpp">class Basis{

int X;
int Y;
.
.
.

};

class A: public Basis{
.
.
};
class B: public Basis{
.
.
};
class C: public Basis{
.
.
};
class D: public Basis{
.
.
};
</code></pre>
<p>so nun will ich in allen subklasen A-D die Variable X aus Basis verwenden.. soweit kein problem. nun will ich aber die Variable Y nur in A-C verwenden drüfen, und nich in D! geht das ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255709</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 30 Mar 2007 03:32:41 GMT</pubDate></item><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 05:07:12 GMT]]></title><description><![CDATA[<p>finde ich nicht logisch, warum dann nicht so?</p>
<pre><code>class Basis{

int X;

.
.
.

};

class A: public Basis{
.int Y;
.
};
class B: public Basis{
.int Y;
.
};
class C: public Basis{
.int Y;
.
};
class D: public Basis{
.
.
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255715</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Fri, 30 Mar 2007 05:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 05:08:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class BasisX{ 

int Y; 
. 
. 
. 

}; 

class BasisY : public BasisX{ 

int Y; 
. 
. 
. 

}; 

class A: public BasisY{ 
. 
. 
}; 
class B: public BasisY{ 
. 
. 
}; 
class C: public BasisY{ 
. 
. 
}; 
class D: public BasisX{ 
. 
. 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255716</guid><dc:creator><![CDATA[skals]]></dc:creator><pubDate>Fri, 30 Mar 2007 05:08:16 GMT</pubDate></item><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 05:09:36 GMT]]></title><description><![CDATA[<p>soll natuerich X sein in BasisX.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/448">@elise</a>: Das ist genau das was man mit OOP verhindern will, eben den gleichen Code per copy-Paste an vielen Stellen haben (in dem Fall int Y)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255718</guid><dc:creator><![CDATA[skals]]></dc:creator><pubDate>Fri, 30 Mar 2007 05:09:36 GMT</pubDate></item><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 06:21:23 GMT]]></title><description><![CDATA[<p>@skals: Die Möglichkeit hab ich auch schon in betracht gezoge.. aber ich dachte es gibt ne bessere Lösung, damit ich die zweite Basis klasse weglassen kann.<br />
Ist auch nich soo tragisch... wenn es nich geht... werde halt dann in der Klasse D den wert Y nich nutzen und fertig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255736</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 30 Mar 2007 06:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 07:02:13 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>das klingt für mich nach einem Denk-/Designfehler. Es ist &quot;guter Stil&quot;, Vererbung für &quot;ist-ein-Relationen&quot; einzusetzen.<br />
Wenn also A-D von Basis erben, muss gelten &quot;A IST ein Basis&quot;, &quot;B IST ein Basis&quot;, ...<br />
und das bedeutet, dass sie auch die Eigenschaften (Attribute und Methoden) von Basis besitzen. Wenn sie diese Eigenschaften NICHT haben, sollten sie nicht davon erben.<br />
Man käme ja auch nicht auf die Idee, grünerBMW von rotesAuto abzuleiten....</p>
<p>.. und das nicht, weil ein paar snobistische Puristen ihr ästhetisches Empfinden verletzt sehen, sondern weil einfach schon so viele normale Leute da üble Probleme bekommen und blutige Nasen geholt haben.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255761</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 30 Mar 2007 07:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Desing frage (Vererbung) on Fri, 30 Mar 2007 08:52:16 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>@skals: Die Möglichkeit hab ich auch schon in betracht gezoge.. aber ich dachte es gibt ne bessere Lösung, damit ich die zweite Basis klasse weglassen kann.<br />
Ist auch nich soo tragisch... wenn es nich geht... werde halt dann in der Klasse D den wert Y nich nutzen und fertig...</p>
</blockquote>
<p>Hmm, ich denke Du machst damit einen Fehler. Die Lösung mit zwei Klassen ist genau das, was Du beschreibst, die zweite Klasse wegzulassen weil es dir lästig erscheint heisst imho, sich für das falsche Design zu entscheiden.</p>
<p>Oberklassen sollen Gemeinsamkeiten zusammenfassen, Unterkassen trennen die Unterschiede voneinander. Wenn also in einer Oberklasse Elemente sind, die davon ableitende Unterklassen nicht brauchen (im Beispiel Y), dann ist das unsauberes Design. Unsauber, weil das Design sagt: Y ist ein Basiselement von D während Du selber eigendlich implementieren willst: Y ist _kein_Basiselement von D. Das ist ein Widerspruch zwischen Design und Implementierung.</p>
<p>Extrem ausgedrückt könntest Du ja sonst auch alles in eine große Klasse packen und A-D ganz weglassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255826</guid><dc:creator><![CDATA[skals]]></dc:creator><pubDate>Fri, 30 Mar 2007 08:52:16 GMT</pubDate></item></channel></rss>