<?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[Aufruf in Basisklasse ruft Basis-Methode auf]]></title><description><![CDATA[<p>Hallo,<br />
nach einigem ergebnislosem Suchen und wälzen dutzender Anleitungen zu Vererbung schreibe ich nun mal hier...<br />
in der Hoffnung, mir kann jemand sagen, warum ein Aufruf in der Basisklasse nicht die überschriebene Methode aufruft...</p>
<p>erstmal bisschen code:</p>
<p>Basisklasse (hier wird auch OnCreate aufgerufen):</p>
<pre><code class="language-cpp">class CWindow
{
  protected:
    virtual void OnCreate();
...
void CWindow::OnCreate()
{
  cout &lt;&lt; &quot;CWindow::OnCreate&quot; &lt;&lt; '\n';
}
</code></pre>
<p>diese Klasse überschreibe ich:</p>
<pre><code class="language-cpp">class MyWindow : public CWindow
{
  protected:
    void OnCreate();
...
void MyWindow::OnCreate()
{
  cout &lt;&lt; &quot;MyWindow::OnCreate&quot; &lt;&lt; '\n';
}
</code></pre>
<p>ich erstelle ein Objekt vom Typ MyWindow und die BasisKlasse ruft OnCreate auf...nur leider das eigene, nicht das von MyWindow <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268725/aufruf-in-basisklasse-ruft-basis-methode-auf</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 15:12:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268725.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Jun 2010 16:52:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Sun, 13 Jun 2010 16:52:54 GMT]]></title><description><![CDATA[<p>Hallo,<br />
nach einigem ergebnislosem Suchen und wälzen dutzender Anleitungen zu Vererbung schreibe ich nun mal hier...<br />
in der Hoffnung, mir kann jemand sagen, warum ein Aufruf in der Basisklasse nicht die überschriebene Methode aufruft...</p>
<p>erstmal bisschen code:</p>
<p>Basisklasse (hier wird auch OnCreate aufgerufen):</p>
<pre><code class="language-cpp">class CWindow
{
  protected:
    virtual void OnCreate();
...
void CWindow::OnCreate()
{
  cout &lt;&lt; &quot;CWindow::OnCreate&quot; &lt;&lt; '\n';
}
</code></pre>
<p>diese Klasse überschreibe ich:</p>
<pre><code class="language-cpp">class MyWindow : public CWindow
{
  protected:
    void OnCreate();
...
void MyWindow::OnCreate()
{
  cout &lt;&lt; &quot;MyWindow::OnCreate&quot; &lt;&lt; '\n';
}
</code></pre>
<p>ich erstelle ein Objekt vom Typ MyWindow und die BasisKlasse ruft OnCreate auf...nur leider das eigene, nicht das von MyWindow <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911766</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Sun, 13 Jun 2010 16:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Sun, 13 Jun 2010 16:55:14 GMT]]></title><description><![CDATA[<p>Im Konstruktor sind die virtuellen Funktionen noch nicht verfügbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911768</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sun, 13 Jun 2010 16:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Sun, 13 Jun 2010 17:11:32 GMT]]></title><description><![CDATA[<p>Danke für den Hinweis, genau das war es...<br />
leider brauche ich jetzt eine separate Methode, um mein Fenster zu erstellen...vorher hat das alles mein Constructor gemacht...</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911774</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Sun, 13 Jun 2010 17:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Sun, 13 Jun 2010 17:57:29 GMT]]></title><description><![CDATA[<p>Warum eigentlich der Umweg über <code>OnCreate()</code> ? Kannst du die klassenspezifischen Aktionen nicht gleich im jeweiligen Konstruktor ausführen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911788</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 13 Jun 2010 17:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Sun, 13 Jun 2010 19:03:26 GMT]]></title><description><![CDATA[<p>OnCreate ist meine Ereignismethode,welche ich von der abgeleiteten Klasse mit Code fülle,der nix mit meiner basisklasse zu tun hat (erstellen anderer Controls). OnCreate wird nicht direkt vom constructor aufgerufen sondern über die WM_CREATE-Nachricht. Zu dem Zeitpunkt ist aber noch CreateWindowEx aktiv,welches im Constructor aufgerufen wurde.</p>
<p>Gruß frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911803</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Sun, 13 Jun 2010 19:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Sun, 13 Jun 2010 20:24:33 GMT]]></title><description><![CDATA[<p><em>frank</em> schrieb:</p>
<blockquote>
<p>OnCreate ist meine Ereignismethode,welche ich von der abgeleiteten Klasse mit Code fülle,der nix mit meiner basisklasse zu tun hat (erstellen anderer Controls). OnCreate wird nicht direkt vom constructor aufgerufen sondern über die WM_CREATE-Nachricht. Zu dem Zeitpunkt ist aber noch CreateWindowEx aktiv,welches im Constructor aufgerufen wurde.</p>
</blockquote>
<p>Das ist keine Begruendung warum du ein OnCreate() hast.<br />
Nur weil intern ein WM_CREATE gesendet wird, musst du das nicht 1:1 in deiner Library abbilden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911826</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 13 Jun 2010 20:24:33 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf in Basisklasse ruft Basis-Methode auf on Mon, 14 Jun 2010 09:24:48 GMT]]></title><description><![CDATA[<p>sicherlich mag es mehrere Möglichkeiten geben, ich kenne nur die OnCreate-Methode von Delphi und da war es der optimale platz um dynamisch controls zu erstellen.<br />
Direkt im Constructor habe ich evtl noch nicht das Window-Handle, welches ich benötige um diese Controls zu erstellen.</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911978</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Mon, 14 Jun 2010 09:24:48 GMT</pubDate></item></channel></rss>