<?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[Subclass Methode aufrufen]]></title><description><![CDATA[<p>Hi,</p>
<p>noch eine einfache Frage hinterh, wo ich grad hänge: Ich hab eine Klasse, die zwei Subklassen hat.</p>
<pre><code class="language-cpp">class MyClass
{

   virtual void GetValue(CString &amp; name, CString &amp; value);
};

class Subclass1 : public MyClass
{
  virtual void GetValue(CString &amp; name, CString &amp; value)
  {
     name = m_name1;
     value = m_value1;
  }

private:
  CString m_name1;
  CString m_value1;
};

class Subclass2 : public MyClass
{
  virtual void GetValue(CString &amp; name, CString &amp; value)
  {
     name = m_name2;
     value = m_value2;
  }

private:
  CString m_name2;
  CString m_value2;
};

void MyTestClass::Init(void)
{
   MyClass myVar;

   CString name1;
   CString value1;

   myVar.GetValue(name1, value1);

}
</code></pre>
<p>Wie kann ich der Variable myVar sagen, dass sie entweder die Subclass1 oder die Subclass2 aufrufen soll wenn ich die Methode GetValue aufrufe?</p>
<p>Mfg<br />
Kurzer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274438/subclass-methode-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 12:18:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274438.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Sep 2010 10:15:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 10:15:12 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>noch eine einfache Frage hinterh, wo ich grad hänge: Ich hab eine Klasse, die zwei Subklassen hat.</p>
<pre><code class="language-cpp">class MyClass
{

   virtual void GetValue(CString &amp; name, CString &amp; value);
};

class Subclass1 : public MyClass
{
  virtual void GetValue(CString &amp; name, CString &amp; value)
  {
     name = m_name1;
     value = m_value1;
  }

private:
  CString m_name1;
  CString m_value1;
};

class Subclass2 : public MyClass
{
  virtual void GetValue(CString &amp; name, CString &amp; value)
  {
     name = m_name2;
     value = m_value2;
  }

private:
  CString m_name2;
  CString m_value2;
};

void MyTestClass::Init(void)
{
   MyClass myVar;

   CString name1;
   CString value1;

   myVar.GetValue(name1, value1);

}
</code></pre>
<p>Wie kann ich der Variable myVar sagen, dass sie entweder die Subclass1 oder die Subclass2 aufrufen soll wenn ich die Methode GetValue aufrufe?</p>
<p>Mfg<br />
Kurzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957596</guid><dc:creator><![CDATA[Kurzer]]></dc:creator><pubDate>Sun, 26 Sep 2010 10:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 10:23:59 GMT]]></title><description><![CDATA[<p>Dazu müsstest du myVar auch als Subclass1 oder Subclass2 deklarieren, nicht als MyClass.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957600</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sun, 26 Sep 2010 10:23:59 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 10:28:57 GMT]]></title><description><![CDATA[<p>Kurzer schrieb:</p>
<blockquote>
<p>Wie kann ich der Variable myVar sagen, dass sie entweder die Subclass1 oder die Subclass2 aufrufen soll wenn ich die Methode GetValue aufrufe?</p>
</blockquote>
<p>MyClass hat nur Typinformationen übersich selbst. Woher sollte sie eine Subklasse kennen. Das wäre ja so, wie wenn du dein nicht existierendes Kind kennst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957604</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Sep 2010 10:28:57 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 10:37:28 GMT]]></title><description><![CDATA[<p>Danke für die Antworten.</p>
<p>Dann leuchtet mir grad noch nicht der Sinn von einer Subklasse ein:</p>
<pre><code class="language-cpp">void MyTestClass::Init(void)
{
   Subclass1 myVar1;
   Subclass2 myVar2;

   CString name1;
   CString value1;

   myVar1.GetValue(name1, value1);

}
</code></pre>
<p>weil im Prinzip sieht es bis jetzt für mich so aus, dass ich die Funktion GetValue() auch ohne MyClass im gleichen Stile aufrufen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957610</guid><dc:creator><![CDATA[Kurzer]]></dc:creator><pubDate>Sun, 26 Sep 2010 10:37:28 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 11:19:37 GMT]]></title><description><![CDATA[<p>Also, erst einmal 2 wichtige Grundregeln fürs ableiten:</p>
<p>Du darfst nur dann ableiten,<br />
- wenn es eine &quot;is-a&quot; Beziehung ist und<br />
- wenn das LSP-Prinzip (Liskovsches Substitutionsprinzip) zutrifft.</p>
<p>Nur wenn diese 2 Regelen erfüllt werden, macht eine Ableitung Sinn und nur dann solltest du auch ableiten.</p>
<p>is-a Beziehung: Lebewesen &lt;-- Mensch &lt;-- Student<br />
Ein Student ist ein (is-a) Mensch und ein Mensch ist wiederum ein Lebewesen.<br />
--&gt; Umso weiter man ableitet, um so detaillierter wird es, wie du sehen kannst.<br />
--&gt; Du leitest also ab, wenn du etwas detaillierter haben möchtest (Student), jedoch die Grundlagen nicht neu definieren willst, da diese ja bereits bekannt sind (Lebewesen bzw. Mensch).</p>
<p>LSP Prinzip kannst du hier mal nachlesen:<br />
<a href="http://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip" rel="nofollow">http://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip</a><br />
Zum Beispiel sollst du &quot;Kreis&quot; nicht von &quot;Ellipse&quot; ableiten, obwohl is-a zutrifft.<br />
--&gt; Ein Spezialfall soll also keine Ableitung darstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957619</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Sep 2010 11:19:37 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 12:45:38 GMT]]></title><description><![CDATA[<p>Dweb schrieb:</p>
<blockquote>
<p>Also, erst einmal 2 wichtige Grundregeln fürs ableiten:</p>
<p>Du darfst nur dann ableiten,<br />
- wenn es eine &quot;is-a&quot; Beziehung ist und<br />
- wenn das LSP-Prinzip (Liskovsches Substitutionsprinzip) zutrifft.</p>
<p>Nur wenn diese 2 Regelen erfüllt werden, macht eine Ableitung Sinn und nur dann solltest du auch ableiten.</p>
</blockquote>
<p>Du beziehst dich auf öffentliche Vererbung, oder? Für private Vererbung ist das überhaupt nicht so. Und von <em>dürfen</em> würde ich auch nicht reden, sondern eher von <em>sollen</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957648</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 26 Sep 2010 12:45:38 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 18:27:31 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Du beziehst dich auf öffentliche Vererbung, oder? Für private Vererbung ist das überhaupt nicht so.</p>
</blockquote>
<p>Wie sind den die Regeln für eine private Vererbung ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957777</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 26 Sep 2010 18:27:31 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Sun, 26 Sep 2010 19:03:18 GMT]]></title><description><![CDATA[<p>Oft wird das als &quot;has-a&quot; beschrieben. Die Klasse benutzt bei der private Vererbung die Basisklasse und nutzt sie, um die eigene Funktionalität zu implementieren. Es ist eine Art Aggregation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957789</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 26 Sep 2010 19:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Mon, 27 Sep 2010 11:20:33 GMT]]></title><description><![CDATA[<p>Es ist ja quasi das gleiche wie Einbettung, denn die abgeleitete Klasse nutzt die Funktionen der Basis um sich selbst zu implementieren. So ist es ja eigentlich auch bei der Einbettung, wenn eine Klasse eine andere enthält, dann nutzt sie ja auch die Funktionen um sich selbst zu implementieren. Die Schnittstelle, der eingebetteten Klasse oder eben der privaten Basisklasse, ist in der Schnittstelle der abgeleiteten bzw der Klasse die die andere einbettet nicht enthalten.</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957990</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Mon, 27 Sep 2010 11:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Mon, 27 Sep 2010 13:09:32 GMT]]></title><description><![CDATA[<p>Genau. Ich persönlich habe private Vererbung noch nie wirklich gebraucht. Ich bevorzuge üblicherweise aus dem Objekt gleich ein ganz normale Member zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958052</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:09:32 GMT</pubDate></item><item><title><![CDATA[Reply to Subclass Methode aufrufen on Mon, 27 Sep 2010 13:32:19 GMT]]></title><description><![CDATA[<p>Dito <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>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958065</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:32:19 GMT</pubDate></item></channel></rss>