<?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[Klassen Vereerben (auch ein Thread Klasse)]]></title><description><![CDATA[<p>Hallo habe ein Problem mit Klassen.<br />
1.) Ich habe eine Klasse die folgendermaßen deklariert ist:</p>
<pre><code class="language-cpp">class Test
{
  public:
    void schreiben();
    void empfangen();
};
</code></pre>
<p>2.) Habe ich einen Thread:</p>
<pre><code class="language-cpp">class empfangen : public TThread
{            
private:
protected:
        void __fastcall Execute();
public:
        __fastcall empfangen(bool CreateSuspended);
};
</code></pre>
<p>3.) Den Thread kann ich folgendermaßen aufrufen:</p>
<pre><code class="language-cpp">empfangen *SecondProcess = new empfangen(false);
  SecondProcess-&gt;Priority = tpLower; // niedrigere Priorität setzen
SecondProcess-&gt;Resume(); // Thread jetzt ausführen
</code></pre>
<p>4.) Die erste Klassen rufe ich folgender Maßen auf:</p>
<pre><code class="language-cpp">Test Schnittstelle;
Test.schreiben();
</code></pre>
<p>Geht es eigentlich, dass ich einer Klasse mehrere Klassen vererb?</p>
<p>Jetzt kommt mein Problem ich möchte über die Klasse test den Thread aufrufen. Hierzu möchte ich, die Thread Klasse vereerben. Aber das funktioniert nicht. Wie kann ich das Problem lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127460/klassen-vereerben-auch-ein-thread-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 23:57:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127460.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Nov 2005 14:28:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Thu, 24 Nov 2005 14:28:44 GMT]]></title><description><![CDATA[<p>Hallo habe ein Problem mit Klassen.<br />
1.) Ich habe eine Klasse die folgendermaßen deklariert ist:</p>
<pre><code class="language-cpp">class Test
{
  public:
    void schreiben();
    void empfangen();
};
</code></pre>
<p>2.) Habe ich einen Thread:</p>
<pre><code class="language-cpp">class empfangen : public TThread
{            
private:
protected:
        void __fastcall Execute();
public:
        __fastcall empfangen(bool CreateSuspended);
};
</code></pre>
<p>3.) Den Thread kann ich folgendermaßen aufrufen:</p>
<pre><code class="language-cpp">empfangen *SecondProcess = new empfangen(false);
  SecondProcess-&gt;Priority = tpLower; // niedrigere Priorität setzen
SecondProcess-&gt;Resume(); // Thread jetzt ausführen
</code></pre>
<p>4.) Die erste Klassen rufe ich folgender Maßen auf:</p>
<pre><code class="language-cpp">Test Schnittstelle;
Test.schreiben();
</code></pre>
<p>Geht es eigentlich, dass ich einer Klasse mehrere Klassen vererb?</p>
<p>Jetzt kommt mein Problem ich möchte über die Klasse test den Thread aufrufen. Hierzu möchte ich, die Thread Klasse vereerben. Aber das funktioniert nicht. Wie kann ich das Problem lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926131</guid><dc:creator><![CDATA[Hansmaker84]]></dc:creator><pubDate>Thu, 24 Nov 2005 14:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Thu, 24 Nov 2005 14:34:11 GMT]]></title><description><![CDATA[<p>Hansmaker84 schrieb:</p>
<blockquote>
<p>Geht es eigentlich, dass ich einer Klasse mehrere Klassen vererb?</p>
</blockquote>
<p>schonmal ausprobiert?</p>
<p>-&gt; ja? was ist passiert?<br />
-&gt; nein? dann wird es zeit.</p>
<p>wieso willst du test von thread erben lassen? dann sei dir im klaren, das test auch ein thread ist! wenn du den thread nur nutzen willst, deklariere ihn als member der klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926136</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 24 Nov 2005 14:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Thu, 24 Nov 2005 15:18:52 GMT]]></title><description><![CDATA[<p>Folgendes habe ich ausprobiert:</p>
<pre><code class="language-cpp">class Test : public empfangen
{
  public:
    void schreiben();
    void empfangen();
};
</code></pre>
<p>Dann bekomme ich folgende Fehlermeldung:<br />
[C++ Fehler] Unit1.cpp(12): E2459 Klassen im VCL-Stil müssen mit dem Operator new erstellt werden</p>
<p>Diesen Fehler habe ich so behoben:</p>
<pre><code class="language-cpp">Test* Klasse1 = new Test ;
</code></pre>
<p>Jetzt kommt diese Fehlermeldung:<br />
[C++ Fehler] Unit1.cpp(13): E2125 Compiler konnte Standardkonstruktor nicht für die Klasse 'RS232' generieren</p>
<p>Was ist &quot;member der klasse&quot; habe ich noch nicht gehört, kannst du mir das mal erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926166</guid><dc:creator><![CDATA[Hansmaker84]]></dc:creator><pubDate>Thu, 24 Nov 2005 15:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 08:10:07 GMT]]></title><description><![CDATA[<p>Hansmaker84 schrieb:</p>
<blockquote>
<p>E2125 Compiler konnte Standardkonstruktor nicht für die Klasse 'RS232' generieren</p>
</blockquote>
<p>in dieser fehlermeldung steht doch schon alles. deiner klasse test fehlt der standard-konstruktor.</p>
<pre><code class="language-cpp">class empfangen : public TThread
{            
  protected:

        void __fastcall Execute();

  public:

        __fastcall empfangen(bool CreateSuspended);
}; 

// abgeleitete Klasse
class Test : public empfangen
{
  public:

    void schreiben();
    void empfangen();

    // Standard-Konstruktor
    // -&gt; std.-maessig ist der Thread suspended gestartet
    // -&gt; wenn false dann halt nicht
    Test()                           : empfangen(true)            {}    

    // Konstruktor mit Parameter 
    // -&gt; kannste z.b. verwenden um das Erzeugen des Threads zu steuern
    //    da dieser ja den Parameter erwartet
    Test(const bool CreateSuspended) : empfangen(CreateSuspended) {}
};
</code></pre>
<p>p.s. code-tags funzen nicht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/926390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926390</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Fri, 25 Nov 2005 08:10:07 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Thu, 24 Nov 2005 19:16:44 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/588">@Sunday</a>: Mach mal die Kursiv-Tags um das Wort suspended weg. Dann klappts auch mim Code-Tag. <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>Grüße Joe_M.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926405</guid><dc:creator><![CDATA[zufaulzumeinloggen]]></dc:creator><pubDate>Thu, 24 Nov 2005 19:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 08:10:53 GMT]]></title><description><![CDATA[<p>seltsam, hab das doch frueher schon <em>kursiv</em> und <strong>fett</strong> im code benutzt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/926679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926679</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Fri, 25 Nov 2005 08:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 15:13:46 GMT]]></title><description><![CDATA[<p>Danke,<br />
diese Fehler ist jetzt auch behoben. Jetzt kommt aber schon der nächste Fehler und zwar in dieser Zeile:</p>
<pre><code class="language-cpp">Klasse1.schreiben();
</code></pre>
<p>Meldung:<br />
[C++ Fehler] Unit1.cpp(26): E2294 Auf linker Seite der Struktur ist . oder .* erforderlich</p>
<p>Diese habe ich behoben indem ich folgendes schrieb:</p>
<pre><code class="language-cpp">Klasse1.*schreiben();
</code></pre>
<p>Jetzt lautet die Fehlermeldung:<br />
[C++ Fehler] Unit1.cpp(26): E2268 Aufruf der undefinierten Funktion 'schreiben'</p>
<p>Was mache ich jetzt falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927067</guid><dc:creator><![CDATA[Hansmaker84]]></dc:creator><pubDate>Fri, 25 Nov 2005 15:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 15:30:23 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Klasse1-&gt;schreiben();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/927089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927089</guid><dc:creator><![CDATA[wedmer]]></dc:creator><pubDate>Fri, 25 Nov 2005 15:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 15:32:38 GMT]]></title><description><![CDATA[<p>wenn du klassen dynamisch mit <strong>new</strong> erzeugst, musst du mit <strong>-&gt;</strong> auf die funktionen und variablen der klasse zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927093</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Fri, 25 Nov 2005 15:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 16:01:32 GMT]]></title><description><![CDATA[<p>Vielendank!<br />
Wo muss ich eigentlich eine Variable deklarienen die ich in beiden Klassen verwenden möchte, aber von außerhalb nicht sichtbar sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927113</guid><dc:creator><![CDATA[Hansmaker84]]></dc:creator><pubDate>Fri, 25 Nov 2005 16:01:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 16:18:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Als protected von <em>empfangen</em>, dann kannst du sowohl von <em>empfangen</em> als auch von <em>Test</em> drauf zugreifen. Aber von außerhalb der Klassen nicht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927126</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 25 Nov 2005 16:18:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 16:34:56 GMT]]></title><description><![CDATA[<p>Ich kann zwar von beiden Klassen auf die Variable zugreifen.</p>
<p>Wenn ich aber bei empfangen die Variable auslese ist sie 0, zuvor habe ich Sie bei test auf 5 gesetzt.</p>
<pre><code class="language-cpp">void test::schreiben()
{
  i = 5;
  empfangen *SecondProcess = new empfangen(false);
  SecondProcess-&gt;Priority = tpLower; // niedrigere Priorität setzen
  SecondProcess-&gt;Resume(); // Thread jetzt ausführen
}
</code></pre>
<p>Hier ist die Variable aber null:</p>
<pre><code class="language-cpp">void __fastcall empfangen::Execute()
{
  i = 2;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/927133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927133</guid><dc:creator><![CDATA[Hansmaker84]]></dc:creator><pubDate>Fri, 25 Nov 2005 16:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Vereerben (auch ein Thread Klasse) on Fri, 25 Nov 2005 16:49:30 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich glaube du hast da das Konzept falsch verstanden.<br />
Du willst mit <em>schreiben()</em> eine neue Thread-Instanz von Typ <em>empfangen</em> erzeugen und dieser Instanz noch eine zusätzliche Variable für deren Methode <em>empfangen()</em> (bemerkst du die Doppeldeutigkeit deiner Begriffe?) übergeben? Dann ist das von mir gesagte natürlich nicht ausreichend. Am besten übergibst du den Wert als zusätzlichen Wert des Parameters des Konstruktors von empfangen.<br />
Übrigens scheint es ganz so, als ob die Thread-Instanz die du in empfangen erzeugst, niemals wieder gelöscht wird.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927140</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 25 Nov 2005 16:49:30 GMT</pubDate></item></channel></rss>