【问题标题】:How do I pass an object by reference inside parameters?如何通过引用内部参数传递对象?
【发布时间】:2013-12-21 21:45:27
【问题描述】:

为了得到……

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

为了工作,我需要通过另一个函数的引用传入Graph &amp;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 中使用它来制作一个向量。 (当然在单独的课程中)

【问题讨论】:

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


    【解决方案1】:

    看来你只需要传入*this

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

    【讨论】:

    • 谢谢,这就是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 2017-09-11
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多