正在初始化指向对象的指针数组中的对象

Initializing objects in array of pointer to objects

本文关键字:对象 指针 数组 初始化      更新时间:2023-10-16

使用以下实现初始化这些自定义(而非STL)List对象时遇到问题。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

我看到的唯一问题是,您试图用List对象数组而不是指向List对象的指针数组初始化lists

更改

lists = new List[listCount];

lists = new List*[listCount];

因为您创建的是List对象的数组,而不是List指针的数组。

lists = new List*[listCount];