2013-12-21 5 views
0

Для того, чтобы получить ...Как передать объект по ссылке внутри параметров?

void MinPriority::createArray(string targetVertex, Graph & graph) 
{ 
    vector <list <Graph::Edge> >& adjList = graph.get_adjList(); 
} 

работать мне нужно пройти в Graph &graph по ссылке из другой функции:

void Graph::MST_PRIM() 
{ 
    MinPriority priority; 
    for(unsigned int i = 0; i != adjList.size(); i++) 
    { 
     priority.createArray(adjList[i].front().m_vertex, /*...*/); 
    } 
} 

что бы я поставил в /*...*/, чтобы получить createArray работать? Вот грубый пример того, что класс Graph выглядит следующим образом:

class Graph 
{ 
private: 
    vector< list<Edge> > adjList; 
public: 
    Graph(); 
    ~Graph(); 
    class Edge 
    { 
    public: 
     Edge(string vertex, int weight) 
     { 
      m_vertex = vertex; 
      m_weight = weight; 
     } 
     ~Edge(){} 
     string m_vertex; 
     int m_weight; 
    }; 

    vector < list <Edge> > get_adjList(){return adjList;} 
    //Other functions.... 

}; 

Пожалуйста, сообщите мне, если вам нужна дополнительная информация. В основном я хочу получить доступ к adjList по ссылке и использовать его в createArray, чтобы сделать из него вектор. (В отдельном классе, конечно)

ответ

2

кажется все, что вам нужно пройти в *this:

priority.createArray(adjList[i].front().m_vertex, *this); 
+0

Спасибо, что все, что мне нужно. – user3040019

Смежные вопросы