'Vektor' nicht der name einer Art
Ich bin ziemlich neu in C++, & habe ein problem mit Deklaration von Vektoren als Klassenvariable. Ich habe Sie zu arbeiten an anderer Stelle in meinem code durch die Verwendung einer ähnlichen Strategie, aber es funktioniert nicht wie mein header-Datei.
error: ‘vector’ does not name a type
error: ‘vector’ has not been declared
error: expected ‘,’ or ‘...’ before ‘<’ token
error: ‘vector’ does not name a type
Habe ich kommentiert, die Linien, die GCC-Punkte aus als ein problem.
#ifndef HEADER_H
#define HEADER_H
#include <cstdlib>
#include <vector>
#include <string>
using std::string;
// Class declarations
class Node {
int id;
string type;
public:
Node(int, string);
int get_id();
string get_type();
string print();
};
class Event {
string name, date, time;
public:
Event(string, string, string);
string get_name();
string get_date();
string get_time();
string print();
};
class Course {
char id;
std::vector<Node*> nodes[40]; //This one
public:
Course(char, std::vector<Node*>); //This one
char get_id();
std::vector<Node*> get_nodes(); //& this one.
string print();
};
class Entrant {
int id;
Course* course;
string name;
public:
Entrant(int, char, string);
int get_id();
Course* get_course();
string get_name();
string print();
};
// Function declarations
void menu_main();
void nodes_load();
void event_create();
void entrant_create();
void course_create();
#endif /* HEADER_H */
Hier ist ein screenshot der Fehler in meiner IDE, wenn es das gibt mehr Hinweise.
- liveworkspace.org/code/40cuIA$1 alles ist ok... Es war nur eine Fehlermeldung über unbekannte Art Natürlich (vorwärts-Deklaration fix it).
- Haben Sie versucht, diesen header in eine saubere main-Methode allein? Meine beste Vermutung ist, dass dies verursacht wird durch die includer und nicht in der include selbst.
- Ich habe versucht, wie es in einem sauberen Haupt-Datei - erzeugt durch die Netbeans - & ich bekomme immer noch den gleichen Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das einzige problem das ich sehen konnte, tatsächlich den code zu kompilieren ist, dass Sie
Course
imEntrant
Klasse, aber Sie haben keine definition fürCourse
an diesem Punkt.Wenn Sie uns erklären
Course
nur überEntrant
etwa so:Dann ist dein code kompiliert, pro diese live-Beispiel
Sind Sie schummeln 😉 . Der code, den Sie uns gegeben hat, hat
std::vector
, die arbeiten, während der code in deinem screenshot hatvector
was nicht funktioniert (der compiler nicht wissen, wo es sich aus).Lösung: Ändern Sie Ihren code so verwenden
std::vector
.haben Sie installiert die stl? vielleicht wird Ihnen helfen, http://ubuntuforums.org/showthread.php?t=1261897
std
Bibliothek!std::vector
ist Teil der C++ - Standard-Bibliothek.