<?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[Designproblem]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe zwei Klassen geschrieben:</p>
<p>Die Klasse <strong>Mutex</strong>:</p>
<pre><code class="language-cpp">class Mutex
{
private:
	HANDLE mutex;

public:
	bool init();
	void lock();
	void unlock();
};
</code></pre>
<p>Die Klasse <strong>Server</strong>:</p>
<pre><code class="language-cpp">class Server
{
private:
	HANDLE hThread;
	DWORD dwThreadId;
	Mutex&amp; mutex;

public:
	Server();
	bool start();
	void wait();
	static DWORD WINAPI serverMain(LPVOID param);
};
</code></pre>
<p>Ich möchte gerne ein Mutex an diese Klasse übergeben, damit dieser in der Threadfunktion benutzt werden kann. Allerdings muss ich es dazu static machen... Wenn ich es aber static mache, dann kann ich es nicht mehr korrekt initalisieren, etc. Insgesamt scheint das alles sehr unschön zu werden. Daher meine Frage: Wie löse ich das Problem am Besten?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227990/designproblem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 18:39:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227990.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Nov 2008 14:50:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Designproblem on Sat, 22 Nov 2008 14:50:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe zwei Klassen geschrieben:</p>
<p>Die Klasse <strong>Mutex</strong>:</p>
<pre><code class="language-cpp">class Mutex
{
private:
	HANDLE mutex;

public:
	bool init();
	void lock();
	void unlock();
};
</code></pre>
<p>Die Klasse <strong>Server</strong>:</p>
<pre><code class="language-cpp">class Server
{
private:
	HANDLE hThread;
	DWORD dwThreadId;
	Mutex&amp; mutex;

public:
	Server();
	bool start();
	void wait();
	static DWORD WINAPI serverMain(LPVOID param);
};
</code></pre>
<p>Ich möchte gerne ein Mutex an diese Klasse übergeben, damit dieser in der Threadfunktion benutzt werden kann. Allerdings muss ich es dazu static machen... Wenn ich es aber static mache, dann kann ich es nicht mehr korrekt initalisieren, etc. Insgesamt scheint das alles sehr unschön zu werden. Daher meine Frage: Wie löse ich das Problem am Besten?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618884</guid><dc:creator><![CDATA[Martini]]></dc:creator><pubDate>Sat, 22 Nov 2008 14:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to Designproblem on Sat, 22 Nov 2008 15:00:52 GMT]]></title><description><![CDATA[<p>Uebergib in LPVOID param einen Zeiger auf die Server-Instanz. Damit kannst du dann auf das Server-Objekt und damit auf die darin gespeicherte Referenz zu dem Mutex zugreifen.</p>
<p>Noch ein paar Bemerkungen:<br />
Die init-Methode aus Mutex wuerde ich in den Konstruktor verlagern und nicht im Interface der Klasse lassen.<br />
Aehnliches gilt fuer:</p>
<pre><code class="language-cpp">static DWORD WINAPI serverMain(LPVOID param);
</code></pre>
<p>Die gehoert private gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618891</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Sat, 22 Nov 2008 15:00:52 GMT</pubDate></item></channel></rss>