<?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[Factory Pattern]]></title><description><![CDATA[<p>hi kann mir jemand sagen was an dem text nicht stimmt?</p>
<p>danke im vorraus</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Window;
class Renderer;

class Device
{
private:
	Device(void);
	virtual ~Device(void);

private:
	enum DeviceType
	{
		DEVICE_WINDOW		= 0,
		DEVICE_RENDERER
	};

public:
	static Device* create(DeviceType type)
	{
		switch(type)
		{
		case DEVICE_WINDOW:
			return(new class Window());
		case DEVICE_RENDERER:
			return(new class Renderer());
		}

		return 0;
	}

};

class Window : public Device
{
public:
	Window(void);
	~Window(void);
};

class Renderer : public Device
{
public:
	Renderer(void);
	~Renderer(void);
};

int main(void)
{

	return 0;
}
</code></pre>
<p>ciao NwP</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170793/factory-pattern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 05:29:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170793.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Jan 2007 16:02:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Factory Pattern on Fri, 19 Jan 2007 16:03:20 GMT]]></title><description><![CDATA[<p>hi kann mir jemand sagen was an dem text nicht stimmt?</p>
<p>danke im vorraus</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Window;
class Renderer;

class Device
{
private:
	Device(void);
	virtual ~Device(void);

private:
	enum DeviceType
	{
		DEVICE_WINDOW		= 0,
		DEVICE_RENDERER
	};

public:
	static Device* create(DeviceType type)
	{
		switch(type)
		{
		case DEVICE_WINDOW:
			return(new class Window());
		case DEVICE_RENDERER:
			return(new class Renderer());
		}

		return 0;
	}

};

class Window : public Device
{
public:
	Window(void);
	~Window(void);
};

class Renderer : public Device
{
public:
	Renderer(void);
	~Renderer(void);
};

int main(void)
{

	return 0;
}
</code></pre>
<p>ciao NwP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212753</guid><dc:creator><![CDATA[NwP]]></dc:creator><pubDate>Fri, 19 Jan 2007 16:03:20 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Fri, 19 Jan 2007 16:19:02 GMT]]></title><description><![CDATA[<p>Schreibe return new Window() statt return new class Window()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212772</guid><dc:creator><![CDATA[B.Sc. Inf.]]></dc:creator><pubDate>Fri, 19 Jan 2007 16:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Fri, 19 Jan 2007 16:56:56 GMT]]></title><description><![CDATA[<p><a href="http://B.Sc" rel="nofollow">B.Sc</a>. Inf. schrieb:</p>
<blockquote>
<p>Schreibe return new Window() statt return new class Window()</p>
</blockquote>
<p>Das ist kein Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212797</guid><dc:creator><![CDATA[Kenner des Codes]]></dc:creator><pubDate>Fri, 19 Jan 2007 16:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Fri, 19 Jan 2007 18:04:32 GMT]]></title><description><![CDATA[<p>NwP schrieb:</p>
<blockquote>
<p>hi kann mir jemand sagen was an dem text nicht stimmt?</p>
</blockquote>
<p>Keine Ahnung, was stimmt den nicht? ( Fehlermeldung? Unerwünschte Ergebnisse?? &quot;Seltsames&quot; Verhalten??? )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212830</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Fri, 19 Jan 2007 18:04:32 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 01:25:45 GMT]]></title><description><![CDATA[<p>Zeile 18 fehlt ne Wertzuweisung(?)<br />
Sonst ist DEVICE_RENDERER auch 0(?) und die Factory liefert immer nen Window</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213020</guid><dc:creator><![CDATA[Vermutung]]></dc:creator><pubDate>Sat, 20 Jan 2007 01:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 02:55:51 GMT]]></title><description><![CDATA[<p>Nein, der meint:</p>
<p>error C2512: 'Window': Kein geeigneter Standardkonstruktor verfügbar<br />
error C2512: 'Renderer': Kein geeigneter Standardkonstruktor verfügbar</p>
<p>Aber warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213028</guid><dc:creator><![CDATA[kka]]></dc:creator><pubDate>Sat, 20 Jan 2007 02:55:51 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 06:38:04 GMT]]></title><description><![CDATA[<p>vielleicht weil der Konstruktor ers nach dem Aufruf da steht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213042</guid><dc:creator><![CDATA[fds]]></dc:creator><pubDate>Sat, 20 Jan 2007 06:38:04 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 06:53:20 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ein Problem ist, dass an dem Punkt wo ein neues Window bzw. ein Renderer erzeugt werden sollen lediglich eine Vorwärtsdeklaration der beiden Klassen existiert. Für die Erzeugung eines Objekts benötigt man aber die vollständige Klassendefinition.</p>
<p>So geht's:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;
class Device
{
private:
    Device(void);
    virtual ~Device(void);

private:
    enum DeviceType
    {
        DEVICE_WINDOW        = 0,
        DEVICE_RENDERER
    };

public:
    static Device* create(DeviceType type);

};

class Window : public Device
{
public:
    Window(void);
    ~Window(void);
};

class Renderer : public Device
{
public:
    Renderer(void);
    ~Renderer(void);
};

Device* Device::create(DeviceType type) {
  switch(type)
  {
  case DEVICE_WINDOW:
    return(new Window());
  case DEVICE_RENDERER:
    return(new Renderer());
  }
  return 0;
}

int main(void) {
  return 0;
}
</code></pre>
<p>Sonderlich sinnvoll ist es aber nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213045</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sat, 20 Jan 2007 06:53:20 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 07:41:35 GMT]]></title><description><![CDATA[<p>sag ich doch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213050</guid><dc:creator><![CDATA[fds]]></dc:creator><pubDate>Sat, 20 Jan 2007 07:41:35 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 09:18:36 GMT]]></title><description><![CDATA[<p>Du solltest DeviceType public machen, sonst kann man von außen doch gar nicht angeben was für ein Device man haben möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213065</guid><dc:creator><![CDATA[lolz_ausgeloggt]]></dc:creator><pubDate>Sat, 20 Jan 2007 09:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Factory Pattern on Sat, 20 Jan 2007 09:49:38 GMT]]></title><description><![CDATA[<p>wie passt das eigentlich zusammen? Device Window und Renderer? Was haben die jetzt gemeinsam?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213073</guid><dc:creator><![CDATA[sag mal]]></dc:creator><pubDate>Sat, 20 Jan 2007 09:49:38 GMT</pubDate></item></channel></rss>