4

使用以下实现初始化这些自定义(非 STL)列表对象时遇到问题。Graph 类包含一个指向自定义 List 对象的指针数组。我很确定我在声明列表数组的方式上出错了。

标题片段:

class Graph
{
    private:
        List **lists;
        int listCount;
    public:
        .......
        .......
}

实现片段:

//node integer is used for size of array
void Graph::setLists(int node)
{
    listCount = node;
    lists = new List[listCount];

    //for is used to initialized each List element in array
    //The constructor parameter is for List int variable
    for(int i = 0; i < listCount; i++)
        lists[i] = new List(i);
}

我得到的错误:

Graph.cpp: In member function ‘void Graph::setLists(int)’:
Graph.cpp:11:28: error: cannot convert ‘List*’ to ‘List**’ in assignment
4

2 回答 2

4

我看到的唯一问题是您尝试lists使用List对象数组而不是指向List对象的指针数组进行初始化。

改变

lists = new List[listCount];

lists = new List*[listCount];
于 2013-07-02T20:49:31.743 回答
0

因为您正在创建一个 List 对象数组,而不是一个 List 指针数组。

lists = new List*[listCount];
于 2013-07-02T20:50:46.900 回答