如何在参数内通过引用传递对象?

时间:2013-12-21 21:45:28

标签: c++ class oop parameters pass-by-reference

为了得到......

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中使用它来制作一个向量。 (在一个单独的课程中)

1 个答案:

答案 0 :(得分:2)

您似乎只需要传入*this

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