«вектор» не называет тип

Я довольно новичок в C ++, & У меня проблема с объявлением векторов в качестве переменной класса. Я заставил их работать в другом месте моего кода, используя похожую стратегию, но мне не нравится мой заголовочный файл.

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

Я прокомментировал строки, которые GCC указывает на проблему.

#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 */

Вот скриншот ошибки в моей IDE, если это дает больше подсказок.

0

Решение

Единственная проблема, с которой я столкнулся при компиляции вашего кода, это то, что вы используете Course в Entrant класс, но у вас нет определения для Course в таком случае.

Если вы перешлите объявить Course чуть выше Entrant вот так:

class Course;

class Entrant { }; //class definition

Затем ваш код компилируется, в соответствии с этим живой пример

3

Другие решения

Ты обманываешь 😉 . Код, который вы дали нам, имеет std::vector, который работает, в то время как код на вашем скриншоте имеет vector который не работает (компилятор не знает, где его взять).

Решение: измените код для использования std::vector,

3

Вы установили STL? возможно это поможет тебе http://ubuntuforums.org/showthread.php?t=1261897

0
По вопросам рекламы [email protected]