<?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[Vererbung und Polymorphie]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Habe folgendes Bild vor Augen:</p>
<pre><code class="language-cpp">class A {
  public: 
     virtual void doThis ( void ) { /* ##CODE## */ }
};

class B {
  public: 
     void doThis ( void ) { /* ##Other CODE## */ }
};
</code></pre>
<pre><code class="language-cpp">B *b = new B;
b-&gt;dothis();
</code></pre>
<p>Kann ich auf irgend eine Art und weise auf das doThis() von A UND B zuzugreifen? Also dass beide aufgerufen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306392/vererbung-und-polymorphie</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 07:36:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306392.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Jul 2012 05:19:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 05:19:58 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Habe folgendes Bild vor Augen:</p>
<pre><code class="language-cpp">class A {
  public: 
     virtual void doThis ( void ) { /* ##CODE## */ }
};

class B {
  public: 
     void doThis ( void ) { /* ##Other CODE## */ }
};
</code></pre>
<pre><code class="language-cpp">B *b = new B;
b-&gt;dothis();
</code></pre>
<p>Kann ich auf irgend eine Art und weise auf das doThis() von A UND B zuzugreifen? Also dass beide aufgerufen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236114</guid><dc:creator><![CDATA[buxy]]></dc:creator><pubDate>Fri, 27 Jul 2012 05:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 05:40:04 GMT]]></title><description><![CDATA[<p>buxy schrieb:</p>
<blockquote>
<p>Kann ich auf irgend eine Art und weise auf das doThis() von A UND B zuzugreifen? Also dass beide aufgerufen werden.</p>
</blockquote>
<p>Du willst also über den Zeiger <code>b</code> die <code>doThis</code> der Klasse <code>A</code> und <code>B</code> aufrufen können? Nein, das geht nicht, da <code>A</code> und <code>B</code> nichts miteinander am Hut haben. Und selbst wenn <code>B</code> von <code>A</code> abgeleitet wäre, würde es nicht gehen, da Zeiger in einer Vererbungshierarchie nur nach unten zeigen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236119</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 27 Jul 2012 05:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 05:43:20 GMT]]></title><description><![CDATA[<p>schade, dennoch danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236120</guid><dc:creator><![CDATA[buxy]]></dc:creator><pubDate>Fri, 27 Jul 2012 05:43:20 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 05:59:01 GMT]]></title><description><![CDATA[<p>buxy schrieb:</p>
<blockquote>
<p>schade, dennoch danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Wieso machst du kein richtiges Design?</p>
<pre><code class="language-cpp">class A
{
public:
	virtual void doThis ( void ) { std::cout &lt;&lt; 'A'; }
};

class B : public A
{
public:
	void doThis ( void ) { std::cout &lt;&lt; 'B'; }
};

void test(A&amp; ref)
{
	ref.doThis();
}

int main()
{
	A a;
	test(a);

	B b;
	test(b);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2236122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236122</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 27 Jul 2012 05:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 08:14:04 GMT]]></title><description><![CDATA[<p>doch klar geht das.</p>
<p>(GoF-)Template Method Pattern:</p>
<pre><code class="language-cpp">class Base
{
public:

	void callBoth()
	{
		foo();
		foo_();
	}

	void foo() {}
	virtual void foo_() = 0; // oder auch nicht pure-virtual
};

class Derive : public Base
{
public:
		virtual void foo_() {}
};

int main()
{
	std::unique_ptr&lt;Base&gt; a(new Derive);
	a-&gt;callBoth();

	Derive d;
	d.callBoth();
}
</code></pre>
<p>so in etwa kann man sowas machen. die intention hinter dem template pattern sit zwar eigentlich eine andere, aber je nachdem was du vorhast könnte es dir helfen.</p>
<p>was hast du eigentlich vor? weil deinen post verstehe ich nicht so ganz, muss ich leider gestehen... <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/2236142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236142</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 27 Jul 2012 08:14:04 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 08:57:03 GMT]]></title><description><![CDATA[<p>Vielleicht ist einfach so etwas gemeint:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Base
{
public:

    virtual void foo() {cout &lt;&lt; &quot;** Base\n&quot;;}
};

class Derived : public Base
{
public:
    void foo() 
    {
    	Base::foo();
    	cout &lt;&lt; &quot;** Derived\n&quot;;
    }
};

int main()
{
    Base *b = new Derived;
    b-&gt;foo();
    cout &lt;&lt; &quot;-------\n&quot;;

    Derived d;
    d.foo();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2236149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236149</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 27 Jul 2012 08:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 10:29:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class A
{
public:
   virtual void doThis()
   {
		cout &lt;&lt; &quot;A&quot; &lt;&lt; endl;
   }
};

class B : public A
{
public:
   virtual void doThis()
   {
		cout &lt;&lt; &quot;B&quot; &lt;&lt; endl;
		A::doThis();
   }
};

int main()
{
	B b;
	b.doThis();
}
</code></pre>
<p>Ausgabe schrieb:</p>
<blockquote>
<p>B<br />
A</p>
</blockquote>
<p>Wird aber halt jedesmal beides aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236170</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 27 Jul 2012 10:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 12:19:06 GMT]]></title><description><![CDATA[<p>naja, es kommt halt komplett drauf an was der TE haben will...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236189</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 27 Jul 2012 12:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung und Polymorphie on Fri, 27 Jul 2012 18:27:38 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>naja, es kommt halt komplett drauf an was der TE haben will...</p>
</blockquote>
<p>Ich hätte noch eine Idee, was er haben wollen könnte:</p>
<pre><code class="language-cpp">class A 
{
  public:
     virtual void doThis () { /* ##CODE## */ }
};

class B : public A
{
  public:
     void doThis () { /* ##Other CODE## */ }
};

int main()
{
    B *b = new B();
    b-&gt;doThis();
    b-&gt;A::doThis();
    delete b;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2236299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236299</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 27 Jul 2012 18:27:38 GMT</pubDate></item></channel></rss>