2017-01-12 4 views
-4

Ich habe Probleme mit meinem Spiel. Ich habe bisher noch nicht viel von einem Spiel gemacht, aber ich versuche, eine Zeichenkette mit einer externen Funktion aus meiner Bin-Klasse aufzurufen. Wenn ich kompiliere, sagt es, dass ich keine nicht statischen Variablen haben kann.Ich kann keine Zeichenfolgen in meiner Klasse haben. Warum?

#include <iostream> 
#include <stdlib.h> 

using namespace std; 

class Bin { 
    string gameStart = "How would you like to start?\n"; 
}; 

Bin bin1; 

int main() { 
    cout << bin1.gameStart; 
} 

nur als Referenz, habe ich versucht, nach Lösungen suchen, aber auf nicht durchsetzen.

Update: Hallo nochmal. Ich habe einige Rückmeldungen von meiner Frage gelesen. Ich sehe, dass Raw N und Angew einige gültige Punkte gemacht haben. Ich würde gerne fragen, ob diese beiden netten Leute: Wo geht der Header hin? Wie kann ich diese Version des Compilers bekommen?

Danke!

Update: Ich habe es geschafft, herauszufinden, wie ich meinen Code in C++ 14 kompilieren. Es gibt einen Konsolenbefehl, der dafür verwendet werden kann. Ich habe meine open.bat-Datei aktualisiert, mit der ich meinen Notizblockcode kompiliere. Alles funktioniert jetzt gut. Danke allen!

+7

Fügen Sie die '' Header ein. –

+0

http://stackoverflow.com/questions/1452721/why-isusing-namespace-std-considered-bad-practice –

+3

Zusätzlich zu dem, was Raw N sagte, müssen Sie als C++ 11 oder neuere zu kompilieren haben Unterstützung für In-Class-Initialisierer für nicht statische Datenelemente. – Angew

Antwort

4

Der Standardwert für die Member einer Klasse ist private, daher sind Ihre Daten ohne Angabe von Informationen nicht von außerhalb der Klasse zugänglich.
Fügen Sie public: innerhalb der Klasse vor den Deklarationen hinzu.

+0

Auf deinen Punkt 2: Er * hat * ein Objekt der Klasse 'Bin' - namens' bin1'. –

+0

Ich denke, das ist viel wahrscheinlicher, dass er keinen C++ 11-Compiler verwendet. –

+0

@MartinBonner duh. Natürlich hast du recht. – Aganju

Verwandte Themen