<?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[Problem mit OpenGl&#x2F;Glut Destruktor]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem mit einer OpenGl/Glut Anwendung. Ich habe eine Klasse &quot;glutwindow&quot; in der alle Glutfunktionen definiert werden. Desweiteren habe ich nun meine zentrale Klasse &quot;render&quot; die von &quot;glutwindow abgeleitet ist und mein ganzes rendern übernimmt. Diese hat natürlich einen Destruktor, dessen Code aber bei beenden des Programms ignoriert wird.</p>
<pre><code class="language-cpp">class glutWindow {
.
.
.
}
</code></pre>
<pre><code class="language-cpp">class render: public glutWindow {
.
.
.
}
</code></pre>
<pre><code class="language-cpp">~render()  &lt;-- wird nie ausgeführt!!!
</code></pre>
<p>Ich öffne zur Laufzeit aus &quot;render&quot; heraus zwei externe Anwendungen über die Shell und wollte die beiden im Destruktor von &quot;render&quot; auch gerne wieder schließen, aber der Code wird wie gesagt gar nicht ausgeführt.</p>
<p>Kann mir jemand erklären warum oder wie ich das Ausführen des Destruktors &quot;~render()&quot; erzwingen kann?</p>
<p>Wäre für jeden Tip zur Erhellung dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265383/problem-mit-opengl-glut-destruktor</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 04:49:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265383.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Apr 2010 08:27:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit OpenGl&#x2F;Glut Destruktor on Thu, 22 Apr 2010 08:27:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem mit einer OpenGl/Glut Anwendung. Ich habe eine Klasse &quot;glutwindow&quot; in der alle Glutfunktionen definiert werden. Desweiteren habe ich nun meine zentrale Klasse &quot;render&quot; die von &quot;glutwindow abgeleitet ist und mein ganzes rendern übernimmt. Diese hat natürlich einen Destruktor, dessen Code aber bei beenden des Programms ignoriert wird.</p>
<pre><code class="language-cpp">class glutWindow {
.
.
.
}
</code></pre>
<pre><code class="language-cpp">class render: public glutWindow {
.
.
.
}
</code></pre>
<pre><code class="language-cpp">~render()  &lt;-- wird nie ausgeführt!!!
</code></pre>
<p>Ich öffne zur Laufzeit aus &quot;render&quot; heraus zwei externe Anwendungen über die Shell und wollte die beiden im Destruktor von &quot;render&quot; auch gerne wieder schließen, aber der Code wird wie gesagt gar nicht ausgeführt.</p>
<p>Kann mir jemand erklären warum oder wie ich das Ausführen des Destruktors &quot;~render()&quot; erzwingen kann?</p>
<p>Wäre für jeden Tip zur Erhellung dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886573</guid><dc:creator><![CDATA[Patrice079]]></dc:creator><pubDate>Thu, 22 Apr 2010 08:27:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit OpenGl&#x2F;Glut Destruktor on Thu, 22 Apr 2010 09:51:32 GMT]]></title><description><![CDATA[<p>Patrice079 schrieb:</p>
<blockquote>
<p>Diese hat natürlich einen Destruktor, dessen Code aber bei beenden des Programms ignoriert wird.</p>
</blockquote>
<p>das program macht was du ihm sagst.</p>
<blockquote>
<p>Kann mir jemand erklären warum oder wie ich das Ausführen des Destruktors &quot;~render()&quot; erzwingen kann?</p>
</blockquote>
<p>delete das render objekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886619</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Thu, 22 Apr 2010 09:51:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit OpenGl&#x2F;Glut Destruktor on Thu, 22 Apr 2010 09:51:45 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-5577.html" rel="nofollow">rapso</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-7.html" rel="nofollow">Spiele-/Grafikprogrammierung</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886620</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 22 Apr 2010 09:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit OpenGl&#x2F;Glut Destruktor on Thu, 22 Apr 2010 10:26:19 GMT]]></title><description><![CDATA[<p>Mahgels Code und funktionierender <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html" rel="nofollow">Glaskugeln</a> rate ich mal:</p>
<ol>
<li>Du hast ein render-Objekt, auf das du über einen Pointer auf ein glutWindow zugreifst.</li>
<li>du versuchst das Objekt per delete auf diesen Pointer zu zerstören.</li>
<li>der Destruktor von glutWindow ist nicht virtuell deklariert.</li>
</ol>
<pre><code class="language-cpp">class glutWindow {
  /*...*/
public:
  ~glutWindow() {} //nicht virtuell
};

class render: public glutWindow {
  /* ... */
};

int main()
{
  glutWindow* pWindow = new render();
  /* ... */
  delete pWindow; //OUCH. Welcome to the dark shady realms of undefined behavior
}
</code></pre>
<p>Lösung (falls meine Vermutung stimmt): Nochmal im Buch deiner Wahl nachlesen was bei Laufzeitpolymorphie wirchtig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886637</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 22 Apr 2010 10:26:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit OpenGl&#x2F;Glut Destruktor on Thu, 22 Apr 2010 10:39:27 GMT]]></title><description><![CDATA[<p>Das Problem mit GLUT ist dass die glutMainLoop() nicht returned sondern exit() aufruft, deswegen würde ich auch davon abraten GLUT in C++ zu verwenden. Es gibt modernere Alternativen wie z.B. freeglut oder GLFW...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886644</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 22 Apr 2010 10:39:27 GMT</pubDate></item></channel></rss>