<?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[unbekanter Typ bei nested struct]]></title><description><![CDATA[<p>Hi,<br />
ich habe eine Klasse Screen, welche wunderbar funktioniert.</p>
<p>Nun habe ich allerdings in einer anderen Klasse, System folgendes Konstukt:</p>
<pre><code class="language-cpp">class System  
{
private:
	enum PendingScreenOperationType {Add, Remove, Reposition};

	struct PendingScreenOperation
	{
	public:
		Screen* Screen;
		PendingScreenOperationType Type;
		PendingScreenOperation(Screen* screen, PendingScreenOperationType type);
		~PendingScreenOperation();
	};
...
};
</code></pre>
<p>Dies kompiliert im dev-c++ wunderbar, im Microsoft Visual Studio 2005 Express edition bekomme ich jedoch folgende Fehlermeldung:</p>
<pre><code>system.hpp(50) : error C2327: 'System::PendingScreenOperation::Screen' : is not a type name, static, or enumerator
</code></pre>
<p>Durch folgende Änderung kann ich das Problem beheben:</p>
<pre><code class="language-cpp">class System
{
private:
	enum PendingScreenOperationType {Add, Remove, Reposition};

	struct PendingScreenOperation
	{
	public:
		::Screen* Screen;    
		PendingScreenOperationType Type;
		PendingScreenOperation(::Screen* screen, PendingScreenOperationType type);
		~PendingScreenOperation();
	};
...
};
</code></pre>
<p>Jetzt komiliert es in beiden IDEs.. Wenn ich jedoch nur einmal den :: setze, dann kompiliert es im Dev-c++ nicht.</p>
<p>(die Fehlermeldung lautet:</p>
<pre><code>System.hpp:48: error: declaration of `Screen*System::PendingScreenOperation::Screen'
Screen.hpp:31: error: changes meaning of `Screen' from `class Screen'
</code></pre>
<p>)</p>
<p>Woran liegt dies? Warum muss ich hier den :: setzen? Oder liegt der Fehler woanders?</p>
<p>Ich bin für jeden Hinweis dankbar, MfG Niko</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151724/unbekanter-typ-bei-nested-struct</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 17:03:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151724.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Jun 2006 22:03:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unbekanter Typ bei nested struct on Wed, 28 Jun 2006 22:03:19 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe eine Klasse Screen, welche wunderbar funktioniert.</p>
<p>Nun habe ich allerdings in einer anderen Klasse, System folgendes Konstukt:</p>
<pre><code class="language-cpp">class System  
{
private:
	enum PendingScreenOperationType {Add, Remove, Reposition};

	struct PendingScreenOperation
	{
	public:
		Screen* Screen;
		PendingScreenOperationType Type;
		PendingScreenOperation(Screen* screen, PendingScreenOperationType type);
		~PendingScreenOperation();
	};
...
};
</code></pre>
<p>Dies kompiliert im dev-c++ wunderbar, im Microsoft Visual Studio 2005 Express edition bekomme ich jedoch folgende Fehlermeldung:</p>
<pre><code>system.hpp(50) : error C2327: 'System::PendingScreenOperation::Screen' : is not a type name, static, or enumerator
</code></pre>
<p>Durch folgende Änderung kann ich das Problem beheben:</p>
<pre><code class="language-cpp">class System
{
private:
	enum PendingScreenOperationType {Add, Remove, Reposition};

	struct PendingScreenOperation
	{
	public:
		::Screen* Screen;    
		PendingScreenOperationType Type;
		PendingScreenOperation(::Screen* screen, PendingScreenOperationType type);
		~PendingScreenOperation();
	};
...
};
</code></pre>
<p>Jetzt komiliert es in beiden IDEs.. Wenn ich jedoch nur einmal den :: setze, dann kompiliert es im Dev-c++ nicht.</p>
<p>(die Fehlermeldung lautet:</p>
<pre><code>System.hpp:48: error: declaration of `Screen*System::PendingScreenOperation::Screen'
Screen.hpp:31: error: changes meaning of `Screen' from `class Screen'
</code></pre>
<p>)</p>
<p>Woran liegt dies? Warum muss ich hier den :: setzen? Oder liegt der Fehler woanders?</p>
<p>Ich bin für jeden Hinweis dankbar, MfG Niko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1087978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1087978</guid><dc:creator><![CDATA[Sir Niko]]></dc:creator><pubDate>Wed, 28 Jun 2006 22:03:19 GMT</pubDate></item><item><title><![CDATA[Reply to unbekanter Typ bei nested struct on Wed, 28 Jun 2006 22:18:06 GMT]]></title><description><![CDATA[<p>Oh mein Gott ich seh den Wald vor lauter Bäumen nicht, das liegt natürlich daran, dass ich da ein Feld mit dem Namen Screen deklariert habe.</p>
<p>Ihr dürft mich alle auslachen, trotzdem Danke! Niko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1087983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1087983</guid><dc:creator><![CDATA[Sir Niko]]></dc:creator><pubDate>Wed, 28 Jun 2006 22:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to unbekanter Typ bei nested struct on Wed, 28 Jun 2006 22:18:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Screen* Screen;
</code></pre>
<p>hiermit deklarierst du ein member Screen, dass in folge den typ Screen verdeckt. ist das ein tippfehler, oder gewollt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1087984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1087984</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 28 Jun 2006 22:18:08 GMT</pubDate></item></channel></rss>