<?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[String in Klasse deklarieren Error C2864]]></title><description><![CDATA[<p>Hallo, ich habe folgendes Problem:<br />
Ich möchte in einer Klasse einen String deklarieren. Dieser String soll in der Elementfunktion strLen() weiterverwendet werden. Hierzu habe ich zwei Fragen/Probleme:<br />
Wenn ich den String wie in dem vereinfachten Codebeispiel unten deklarieren will kommt immer der Fehler:</p>
<blockquote>
<p>&quot;error C2864: &quot;wort::String1&quot;: Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden&quot;</p>
</blockquote>
<p>Ich habe ihn schon versucht mit const char zu deklarieren aber es klappt ebenso nicht. Die Suche über google ergab leider keine hilfreichen Treffer.</p>
<pre><code>class wort {
    char String1[6] = &quot;Hallo&quot;;
    int strLen();
};

void wort::strLen()	{
	int count = 0;
	while(String1[count] != '\0') 	{			
	    count++;
	}
	printf(&quot;%d&quot;,&amp;count);
}
</code></pre>
<p>Meine zweite Frage betrifft die Weiterverarbeitung des Strings in strLen().<br />
Laut dem Buch das ich zur Hand habe ist der Funktion die Variable String1 bekannt, da diese Funktion zur Klasse gehört. Jedoch meckert der Compiler an der entsprechenden Stelle der Funktion, dass die Variable String1 nicht deklariert ist und somit unbekannt.</p>
<p>Ich hoffe ihr könnt mir (für einen Anfänger) verständliche Tipps und Lösungen der beiden Probleme geben, falls ihr weitere Infos benötigt, fragt einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338116/string-in-klasse-deklarieren-error-c2864</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 09:13:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338116.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 May 2016 13:32:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 13:32:48 GMT]]></title><description><![CDATA[<p>Hallo, ich habe folgendes Problem:<br />
Ich möchte in einer Klasse einen String deklarieren. Dieser String soll in der Elementfunktion strLen() weiterverwendet werden. Hierzu habe ich zwei Fragen/Probleme:<br />
Wenn ich den String wie in dem vereinfachten Codebeispiel unten deklarieren will kommt immer der Fehler:</p>
<blockquote>
<p>&quot;error C2864: &quot;wort::String1&quot;: Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden&quot;</p>
</blockquote>
<p>Ich habe ihn schon versucht mit const char zu deklarieren aber es klappt ebenso nicht. Die Suche über google ergab leider keine hilfreichen Treffer.</p>
<pre><code>class wort {
    char String1[6] = &quot;Hallo&quot;;
    int strLen();
};

void wort::strLen()	{
	int count = 0;
	while(String1[count] != '\0') 	{			
	    count++;
	}
	printf(&quot;%d&quot;,&amp;count);
}
</code></pre>
<p>Meine zweite Frage betrifft die Weiterverarbeitung des Strings in strLen().<br />
Laut dem Buch das ich zur Hand habe ist der Funktion die Variable String1 bekannt, da diese Funktion zur Klasse gehört. Jedoch meckert der Compiler an der entsprechenden Stelle der Funktion, dass die Variable String1 nicht deklariert ist und somit unbekannt.</p>
<p>Ich hoffe ihr könnt mir (für einen Anfänger) verständliche Tipps und Lösungen der beiden Probleme geben, falls ihr weitere Infos benötigt, fragt einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496857</guid><dc:creator><![CDATA[Gast1000]]></dc:creator><pubDate>Tue, 24 May 2016 13:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 13:36:11 GMT]]></title><description><![CDATA[<p>Seit C++11 müsste das gehen. Welche Version von Visual Studio benutzt du? Im übrigen stimmt der Rückgabewert von <code>strLen</code> in der Deklaration nicht mit dem der Definition überein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496859</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Tue, 24 May 2016 13:36:11 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 13:37:01 GMT]]></title><description><![CDATA[<p>Du musst String entweder im Konstruktor initialisieren oder du benutzt C++11 und somit geschweifte Klammern, statt dem '='-Operator.</p>
<blockquote>
<p>Seit C++11 müsste das gehen.</p>
</blockquote>
<p>Nö.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496861</guid><dc:creator><![CDATA[Ratgeber]]></dc:creator><pubDate>Tue, 24 May 2016 13:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 14:40:15 GMT]]></title><description><![CDATA[<p>Geht ganz einfach: Benutze keine C-strings (und printf).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496871</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Tue, 24 May 2016 14:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 14:49:54 GMT]]></title><description><![CDATA[<p>Techel schrieb:</p>
<blockquote>
<p>... (und printf).</p>
</blockquote>
<p>Das du auch falsch benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496872</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Tue, 24 May 2016 14:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 15:18:00 GMT]]></title><description><![CDATA[<p>Kopiere die Fehlermeldung. Zeige den Code, der den Fehler produziert.</p>
<p>Deine Member sind alle private. Du kannst sie also nicht außerhalb von Memberfunktionen (also hier nie) benutzen.</p>
<p>Wenn dir das Buch printf beibringt, schmeiß es ins Altpapier.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496873</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 24 May 2016 15:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 15:27:04 GMT]]></title><description><![CDATA[<p>Als allgemeienr Tipp, diese error codes kann man suchen. Es gibt einige Seiten die zu den codes passende Fehlermeldungen mit Beispielen zur verfügung stellen die zeigen was genau nciht geht und wie man das richtig machen kann. Ist bei einigen Fehlern durchaus sehr praktisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496875</guid><dc:creator><![CDATA[Xebov]]></dc:creator><pubDate>Tue, 24 May 2016 15:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 15:27:15 GMT]]></title><description><![CDATA[<blockquote>
<p>eine Member sind alle private. Du kannst sie also nicht außerhalb von Memberfunktionen (also hier nie) benutzen.</p>
</blockquote>
<p>Sindn im Code public...wie gesagt das ist nicht der ganze code sondern vereinfacht.</p>
<p>Ratgeber schrieb:</p>
<blockquote>
<p>Du musst String entweder im Konstruktor initialisieren</p>
</blockquote>
<p>Habe ich zuvor schon versucht. Hat denselben Fehler ergeben. Ich hatte es in folgendem Schema:</p>
<pre><code>wort(){
    char String1[6] = &quot;Hallo&quot;;
};
</code></pre>
<blockquote>
<p>oder du benutzt C++11 und somit geschweifte Klammern, statt dem '='-Operator.</p>
</blockquote>
<p>Wie meinst du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496876</guid><dc:creator><![CDATA[Gast1000]]></dc:creator><pubDate>Tue, 24 May 2016 15:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 15:30:42 GMT]]></title><description><![CDATA[<p>Gast1000 schrieb:</p>
<blockquote>
<p>Habe ich zuvor schon versucht. Hat denselben Fehler ergeben. Ich hatte es in folgendem Schema:</p>
<pre><code>wort(){
    char String1[6] = &quot;Hallo&quot;;
};
</code></pre>
</blockquote>
<p>So hast du eine lokale Variable in deinem Konstruktor definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496877</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 May 2016 15:30:42 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 15:36:50 GMT]]></title><description><![CDATA[<p>Gast1000 schrieb:</p>
<blockquote>
<blockquote>
<p>eine Member sind alle private. Du kannst sie also nicht außerhalb von Memberfunktionen (also hier nie) benutzen.</p>
</blockquote>
<p>Sindn im Code public...wie gesagt das ist nicht der ganze code sondern vereinfacht.</p>
</blockquote>
<p>Das ist nicht vereinfacht sondern unbrauchbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496878</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 24 May 2016 15:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 16:11:43 GMT]]></title><description><![CDATA[<p>Ratgeber schrieb:</p>
<blockquote>
<blockquote>
<p>Seit C++11 müsste das gehen.</p>
</blockquote>
<p>Nö.</p>
</blockquote>
<p>Warum nicht?</p>
<pre><code>~/test$ cat cppinit.cc 
#include &lt;iostream&gt;

struct wort { 
    char String1[6] = &quot;Hallo&quot;; 
    int strLen(); 
}; 

int main(){
    wort w;
    std::cout &lt;&lt; w.String1 &lt;&lt; &quot;\n&quot;;
}

~/test$ g++ -Wall -Wpedantic -std=c++11 cppinit.cc
~/test$ ./a.out 
Hallo
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2496882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496882</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Tue, 24 May 2016 16:11:43 GMT</pubDate></item><item><title><![CDATA[Reply to String in Klasse deklarieren Error C2864 on Tue, 24 May 2016 16:28:35 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>Ratgeber schrieb:</p>
<blockquote>
<blockquote>
<p>Seit C++11 müsste das gehen.</p>
</blockquote>
<p>Nö.</p>
</blockquote>
<p>Warum nicht?</p>
</blockquote>
<p>Kann ich auch nicht nachvollziehen. Mit Clang funktioniert es genauso und VS2015 nimmt es auch. VS2013 scheint das feature noch nicht implementiert <a href="http://stackoverflow.com/questions/27882915/cant-specify-explicit-initializer-for-arrays" rel="nofollow">zu haben</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2496884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2496884</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Tue, 24 May 2016 16:28:35 GMT</pubDate></item></channel></rss>