0

私はグラフクラスを持っています:

#ifndef GRAPH_H
#define GRAPH_H

#include<list>
#include<iostream>
#include "global.h"

class Graph_{

std::list<Vertex> vertices;
int vcount;
int ecount;

public:
    void insert_vertex(Vertex vert);
    int routesearch(Graph_ *passed, Vertex *vert,  double distance, double curdistance, double safety, double minsafe, int startID);



};


#endif

次に、メインで、宣言したグラフの頂点リストにアクセスしようとすると、エラーが発生します。8 IntelliSense:メンバー "Graph _::vertices"にアクセスできません。私が作成したクラスを除いて、Vertexのように作成した他のすべての構造体で機能するため、何をすべきかわかりません。

 #include "graph.h"
 int main(){
    Vertex dumb;
    Graph_ map;
    map.vertices.push_back(dumb);

}

4

1 に答える 1

2

私が作成した他のすべての構造体で機能します

structpublicデフォルトのアクセス レベルがあります。classではない。publicアクセスしたい場合は、メンバーを作成します。

class Graph_{
//these two are private, because a class has private access level by default
    int vcount;
    int ecount;
public: // <<<--- public here
    std::list<Vertex> vertices;
public:
    void insert_vertex(Vertex vert);
    int routesearch(Graph_ *passed, Vertex *vert,  double distance, double curdistance, double safety, double minsafe, int startID);



};
于 2012-12-06T02:04:35.333 に答える