<?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[new-Operator in Thread-Klasse]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe mir mal wieder ein Programm auf Basis von wxWindows geschrieben. Diese Programm enthält nun eine Klasse die von wxThread abgeleitet ist. Innerhalb der Entry-Funktion der Thread-Klasse erzeuge ich mit dem new-Operator eine Klasse und speichere diesen Zeiger.<br />
Meine Frage ist nun, ob jeder Thread dann seinen eigenen Zeiger, bzw. seine eigene Klasse erzeugt hat, oder ob es diese Klasse nur einmal gibt.</p>
<p>Etwas Code, um die Sache zu veranschaulichen:</p>
<pre><code class="language-cpp">class Thread : public wxThread
{
  public:
    void FreeAll();
    void* Entry();
  private:
    int a;
    int b;
    foo*  ptrfoo;
};

class foo
{
  public:
    void DoSomething();
  private:
    int a;
    int b;
};

void *Thread::Entry()
{
    ptrfoo = new foo();
    ptrfoo-&gt;DoSomething();
}
</code></pre>
<p>Ich habe jetzt im Internet mehrfach Artikel gefunden in denen beschrieben wird, daß die Klasse foo hier nur einmal erzeugt wird. Ich dachte immer, es wäre genau anders.</p>
<p>Bitte um Hilfe...</p>
<p>Ich weiß, daß zumindest in der Thread-Klasse noch Konstruktor und Destruktor fehlen, aber ich hoffe man versteht trotzdem, was ich meine....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/65524/new-operator-in-thread-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 15:21:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/65524.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Feb 2004 15:45:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to new-Operator in Thread-Klasse on Thu, 19 Feb 2004 15:45:23 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe mir mal wieder ein Programm auf Basis von wxWindows geschrieben. Diese Programm enthält nun eine Klasse die von wxThread abgeleitet ist. Innerhalb der Entry-Funktion der Thread-Klasse erzeuge ich mit dem new-Operator eine Klasse und speichere diesen Zeiger.<br />
Meine Frage ist nun, ob jeder Thread dann seinen eigenen Zeiger, bzw. seine eigene Klasse erzeugt hat, oder ob es diese Klasse nur einmal gibt.</p>
<p>Etwas Code, um die Sache zu veranschaulichen:</p>
<pre><code class="language-cpp">class Thread : public wxThread
{
  public:
    void FreeAll();
    void* Entry();
  private:
    int a;
    int b;
    foo*  ptrfoo;
};

class foo
{
  public:
    void DoSomething();
  private:
    int a;
    int b;
};

void *Thread::Entry()
{
    ptrfoo = new foo();
    ptrfoo-&gt;DoSomething();
}
</code></pre>
<p>Ich habe jetzt im Internet mehrfach Artikel gefunden in denen beschrieben wird, daß die Klasse foo hier nur einmal erzeugt wird. Ich dachte immer, es wäre genau anders.</p>
<p>Bitte um Hilfe...</p>
<p>Ich weiß, daß zumindest in der Thread-Klasse noch Konstruktor und Destruktor fehlen, aber ich hoffe man versteht trotzdem, was ich meine....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/463319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/463319</guid><dc:creator><![CDATA[BorlandUser]]></dc:creator><pubDate>Thu, 19 Feb 2004 15:45:23 GMT</pubDate></item><item><title><![CDATA[Reply to new-Operator in Thread-Klasse on Fri, 20 Feb 2004 12:51:15 GMT]]></title><description><![CDATA[<p>Hallo,<br />
die Klasse foo gibt es selbstverständlich nur einmal und ihre Erzeugung hat überhaupt nichts mit dem new-Operator zu tun. Dir geht es hier wohl eher um die Objekte der Klasse.</p>
<p>In deiner Entry-Methode wird ein neues foo-Objekt erzeugt und an den Zeiger ptrfoo gebunden.<br />
Hast du jetzt zwei Objekte deiner Threadklasse und wird über jedes Objekt einmal die Entry-Methode aufgerufen, dann hat jedes Threadobjekt sein eigenes foo-Objekt. Problematisch wird es, wenn du Entry mehrfach aufrufst (auf dem selben Objekt). In diesem Fall verlierst du die Referenz auf ein foo-Objekt und damit produzierst du ein Ressourcenloch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/464048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/464048</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Fri, 20 Feb 2004 12:51:15 GMT</pubDate></item></channel></rss>