C ++ - Kompilierzeitfehler: erwarteter Bezeichner vor numerischer Konstante
Ich habe gelesen, ähnliche Beiträge, aber ich verstehe einfach nicht, was ich falsch gemacht habe. Ich denke, dass meine Erklärung von den Vektoren korrekt ist. Ich habe sogar versucht zu erklären, ohne Größe, sondern auch, was nicht funktioniert.Was ist falsch????
Mein code ist:
#include <vector>
#include <string>
#include <sstream>
#include <fstream>
#include <cmath>
using namespace std;
vector<string> v2(5, "null");
vector< vector<string> > v2d2(20,v2);
class Attribute //attribute and entropy calculation
{
vector<string> name(5); //error in these 2 lines
vector<int> val(5,0);
public:
Attribute(){}
int total,T,F;
};
int main()
{
Attribute attributes;
return 0;
}
InformationsquelleAutor der Frage user1484717 | 2012-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun:
in einer Klasse außerhalb einer Methode.
Können Sie initialisieren die Datenelemente an dem Punkt der Erklärung, aber nicht mit
()
Klammern:Vor C++11, die Sie benötigen, deklarieren Sie Sie zuerst, dann initialisieren Sie diese.e.g im contructor
InformationsquelleAutor der Antwort juanchopanza
Initialisierungen mit
(...)
in der Rumpf der Klasse ist nicht erlaubt. Verwenden{..}
oder= ...
. Leider, da die jeweiligen Konstruktor istexplicit
undvector
hat eine Initialisierungsliste Konstruktor, müssen Sie eine funktionelle cast zu nennen, die wollte KonstruktorAls alternative können Sie die Konstruktor-Initialisierung-Listen
InformationsquelleAutor der Antwort Johannes Schaub - litb
Da dein compiler wahrscheinlich nicht alle von C++11 noch unterstützt, ähnliche syntax, erhalten Sie diesen Fehler, weil Sie initialisiert werden, Ihre Schüler in Konstruktoren:
InformationsquelleAutor der Antwort slartibartfast