<?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[Ärger mit Instanzen]]></title><description><![CDATA[<p>HAllo,</p>
<p>ich habe ein Problem mit einer Instanz. Zuvor will ich sagen, dass ich mit Microsoft Visual Studio <a href="http://2003.net" rel="nofollow">2003.net</a> programmiere. Es handelt sich dabei um folgendes Programm:<br />
Außerdem habe ich gelesen dass man seine Programmierkenntisse angeben soll: C gut, C++ eher schlecht bzw. Anfänger.</p>
<pre><code class="language-cpp">class CMenue
{

public:

	//---Variable

	float values[1025];						// Ausgelesen Messeergebnisse
	char fileData[1056][50];				// Rohe Daten des Files
	char cleanCharValues[1025][36];			// Nur notwendige Parameter als Characters

	char *ptr1;								// Zeiger auf Dateipfad Frequenzgang
	char *ptr2;								// Zeiger auf Dateipfad Phasengang

	CValues inst;

	void menue (void);						// Programm Menueführung

};
</code></pre>
<p>Wenn ich die Instanz &quot;inst&quot; anlegen will, dann bekomme ich folgende 3 Fehlermeldungen:</p>
<p>error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cvalues'<br />
error C2501: 'CMenue::cvalues': Fehlende Speicherklasse oder Typspezifizierer<br />
error C2501: 'CMenue::CValues': Fehlende Speicherklasse oder Typspezifizierer</p>
<p>Warum kommen diese Fehlermeldungen? Ich habe mich vergewissert, dass ich die Klasse richtig geschrieben habe und diese auch existieren. Auch beim Schreiben eines Aufruf einer Methode der Klasse CValues gibt Visual Studio mir alle Methoden zur Verfügung. Nur beim kompelieren kommen dann diese Fehlermeldungen.</p>
<p>Genauso wie in der Klasse CMenue lege ich noch in einer anderen Klasse von der Klasse CValues eine Instanz an, mit dem Unterschied dass es funktioniert.</p>
<p>Soviel steht der MSDN Hilfe zu den Fehlern:</p>
<blockquote>
<p>[Compiler Error C2146]</p>
<p>Syntaxfehler: Fehlendes &quot;Token&quot; vor Bezeichner &quot;Bezeichner&quot;</p>
<p>Der Compiler hat ein Token erwartet, stattdessen aber einen Bezeichner gefunden.</p>
<p>Mögliche Ursache</p>
<p>Ein Schreibfehler. Der Fehler C2065 geht diesem Fehler normalerweise voraus.<br />
Im folgenden Beispiel wird C2146 erzeugt:</p>
<p>// C2146.cpp<br />
int main()<br />
{<br />
intt x; // C2146 : missing semicolon before 'x'<br />
}<br />
Dieser Fehler kann auch aufgrund einer Verbesserung der Compilerkonformität in Visual Studio .NET 2003 ausgegeben werden: explizite Spezialisierungen finden nicht länger Vorlagenparameter aus der primären Vorlage.</p>
<p>Die Verwendung von T aus der primären Vorlage ist in der expliziten Spezialisierung nicht zulässig. In Code, der in der Visual Studio .NET 2003-Version und der Visual Studio .NET-Version von Visual C++ gültig sein soll, ersetzen Sie alle Instanzen des Vorlagenparameters in der Spezialisierung durch den explizit spezialisierten Typ.</p>
<p>Weitere Informationen finden Sie unter Übersicht über die wichtigsten Änderungen bei der Kompilierzeit.</p>
<p>Der folgende Beispielcode wird in Visual Studio .NET kompiliert, verursacht in Visual Studio .NET 2003 jedoch einen Fehler:</p>
<p>// C2146b.cpp<br />
// compile with: /LD<br />
template &lt;class T&gt;<br />
struct S;</p>
<p>template &lt;&gt;<br />
struct S&lt;int&gt;<br />
{<br />
T m_t; // C2146<br />
// Try the following line instead:<br />
// int m_t;<br />
};</p>
</blockquote>
<blockquote>
<p>[Compiler Error C2501]<br />
&quot;Bezeichner&quot;: Fehlende Speicherklasse oder Typspezifizierer<br />
Der Bezeichner wurde ohne Angabe seines Typs deklariert.<br />
Mögliche Ursachen<br />
Schreibfehler oder falsche Groß-/Kleinschreibung.<br />
Fehlender Typspezifizierer in der Deklaration des Bezeichners.<br />
Beispiel<br />
// C2501.cpp<br />
// Header file for the CUndeclared has been omitted:<br />
class CMyClass {<br />
private:<br />
CUndeclared m_myClass; // C2501: Class unknown<br />
} ;</p>
</blockquote>
<p>Danke schon einmal im Vorraus</p>
<p>PS: Vielleicht habe blöd ausgedrückt, wie heißt es: Instanz anlegen, deklarieren, benennen,...? Vielleicht weiß es einer von euch besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195005/ärger-mit-instanzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 18:39:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195005.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Oct 2007 17:02:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ärger mit Instanzen on Fri, 12 Oct 2007 17:02:56 GMT]]></title><description><![CDATA[<p>HAllo,</p>
<p>ich habe ein Problem mit einer Instanz. Zuvor will ich sagen, dass ich mit Microsoft Visual Studio <a href="http://2003.net" rel="nofollow">2003.net</a> programmiere. Es handelt sich dabei um folgendes Programm:<br />
Außerdem habe ich gelesen dass man seine Programmierkenntisse angeben soll: C gut, C++ eher schlecht bzw. Anfänger.</p>
<pre><code class="language-cpp">class CMenue
{

public:

	//---Variable

	float values[1025];						// Ausgelesen Messeergebnisse
	char fileData[1056][50];				// Rohe Daten des Files
	char cleanCharValues[1025][36];			// Nur notwendige Parameter als Characters

	char *ptr1;								// Zeiger auf Dateipfad Frequenzgang
	char *ptr2;								// Zeiger auf Dateipfad Phasengang

	CValues inst;

	void menue (void);						// Programm Menueführung

};
</code></pre>
<p>Wenn ich die Instanz &quot;inst&quot; anlegen will, dann bekomme ich folgende 3 Fehlermeldungen:</p>
<p>error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cvalues'<br />
error C2501: 'CMenue::cvalues': Fehlende Speicherklasse oder Typspezifizierer<br />
error C2501: 'CMenue::CValues': Fehlende Speicherklasse oder Typspezifizierer</p>
<p>Warum kommen diese Fehlermeldungen? Ich habe mich vergewissert, dass ich die Klasse richtig geschrieben habe und diese auch existieren. Auch beim Schreiben eines Aufruf einer Methode der Klasse CValues gibt Visual Studio mir alle Methoden zur Verfügung. Nur beim kompelieren kommen dann diese Fehlermeldungen.</p>
<p>Genauso wie in der Klasse CMenue lege ich noch in einer anderen Klasse von der Klasse CValues eine Instanz an, mit dem Unterschied dass es funktioniert.</p>
<p>Soviel steht der MSDN Hilfe zu den Fehlern:</p>
<blockquote>
<p>[Compiler Error C2146]</p>
<p>Syntaxfehler: Fehlendes &quot;Token&quot; vor Bezeichner &quot;Bezeichner&quot;</p>
<p>Der Compiler hat ein Token erwartet, stattdessen aber einen Bezeichner gefunden.</p>
<p>Mögliche Ursache</p>
<p>Ein Schreibfehler. Der Fehler C2065 geht diesem Fehler normalerweise voraus.<br />
Im folgenden Beispiel wird C2146 erzeugt:</p>
<p>// C2146.cpp<br />
int main()<br />
{<br />
intt x; // C2146 : missing semicolon before 'x'<br />
}<br />
Dieser Fehler kann auch aufgrund einer Verbesserung der Compilerkonformität in Visual Studio .NET 2003 ausgegeben werden: explizite Spezialisierungen finden nicht länger Vorlagenparameter aus der primären Vorlage.</p>
<p>Die Verwendung von T aus der primären Vorlage ist in der expliziten Spezialisierung nicht zulässig. In Code, der in der Visual Studio .NET 2003-Version und der Visual Studio .NET-Version von Visual C++ gültig sein soll, ersetzen Sie alle Instanzen des Vorlagenparameters in der Spezialisierung durch den explizit spezialisierten Typ.</p>
<p>Weitere Informationen finden Sie unter Übersicht über die wichtigsten Änderungen bei der Kompilierzeit.</p>
<p>Der folgende Beispielcode wird in Visual Studio .NET kompiliert, verursacht in Visual Studio .NET 2003 jedoch einen Fehler:</p>
<p>// C2146b.cpp<br />
// compile with: /LD<br />
template &lt;class T&gt;<br />
struct S;</p>
<p>template &lt;&gt;<br />
struct S&lt;int&gt;<br />
{<br />
T m_t; // C2146<br />
// Try the following line instead:<br />
// int m_t;<br />
};</p>
</blockquote>
<blockquote>
<p>[Compiler Error C2501]<br />
&quot;Bezeichner&quot;: Fehlende Speicherklasse oder Typspezifizierer<br />
Der Bezeichner wurde ohne Angabe seines Typs deklariert.<br />
Mögliche Ursachen<br />
Schreibfehler oder falsche Groß-/Kleinschreibung.<br />
Fehlender Typspezifizierer in der Deklaration des Bezeichners.<br />
Beispiel<br />
// C2501.cpp<br />
// Header file for the CUndeclared has been omitted:<br />
class CMyClass {<br />
private:<br />
CUndeclared m_myClass; // C2501: Class unknown<br />
} ;</p>
</blockquote>
<p>Danke schon einmal im Vorraus</p>
<p>PS: Vielleicht habe blöd ausgedrückt, wie heißt es: Instanz anlegen, deklarieren, benennen,...? Vielleicht weiß es einer von euch besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383967</guid><dc:creator><![CDATA[gramboler]]></dc:creator><pubDate>Fri, 12 Oct 2007 17:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ärger mit Instanzen on Fri, 12 Oct 2007 18:00:06 GMT]]></title><description><![CDATA[<p>Du mußt natürlich den Header einfügen, wo 'CValues' deklariert ist.</p>
<pre><code class="language-cpp">#include &quot;values.h&quot; // &lt;- wie auch immer deine Datei heißt
</code></pre>
<blockquote>
<p>C gut, C++ eher schlecht bzw. Anfänger.</p>
</blockquote>
<p>Das funktioniert aber auch in C schon so, also bist du auch in C ein Anfänger -)</p>
<p>P.S. du solltest deine Variablendeklarationen noch mal überdenken:<br />
in C++ gibt es std::string und std::vector und die Variablen sollten private sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384002</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 12 Oct 2007 18:00:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ärger mit Instanzen on Fri, 12 Oct 2007 18:49:12 GMT]]></title><description><![CDATA[<p>alle files sind included.....das ist nicht das Problem!</p>
<p>C immer nocht gut...c++ schlecht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384035</guid><dc:creator><![CDATA[gramboler]]></dc:creator><pubDate>Fri, 12 Oct 2007 18:49:12 GMT</pubDate></item><item><title><![CDATA[Reply to Ärger mit Instanzen on Sat, 13 Oct 2007 06:44:00 GMT]]></title><description><![CDATA[<p>zeig mal die gesamte DMenue und CValue Headerdatei</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384235</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sat, 13 Oct 2007 06:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to Ärger mit Instanzen on Sat, 13 Oct 2007 08:36:34 GMT]]></title><description><![CDATA[<p>gramboler schrieb:</p>
<blockquote>
<p>CValues inst;<br />
...<br />
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cvalues'</p>
</blockquote>
<p>ganz direkt gefragt: stimmen Groß/Kleinschreibung konsequent überein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1384254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1384254</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Sat, 13 Oct 2007 08:36:34 GMT</pubDate></item></channel></rss>