0

私は 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のエラーのスクリーンショットです。それがさらに手がかりを与える場合。

4

3 に答える 3

3

あなたが浮気しています ;-) 。あなたが私たちに与えたstd::vectorコードは、機能しますが、スクリーンショットのコードはvector機能しません(コンパイラはどこから取得するかを知りません)。

解決策:を使用するようにコードを変更しますstd::vector

于 2013-03-11T11:23:21.347 に答える
3

実際にコードをコンパイルしてわかった唯一の問題は、クラスで使用Courseしているが、その時点でEntrantは定義がないことです。Course

Course上記のEntrantように前方宣言すると、次のようになります。

class Course;

class Entrant { }; //class definition

次に、このライブの例に従って、コードがコンパイルされます

于 2013-03-11T10:41:08.603 に答える
0

stlをインストールしましたか?多分これはあなたを助けるでしょうhttp://ubuntuforums.org/showthread.php?t=1261897

于 2013-03-11T10:42:30.073 に答える