【问题标题】:Initializing objects in array of pointer to objects在指向对象的指针数组中初始化对象
【发布时间】:2013-06-30 09:52:07
【问题描述】:

使用以下实现初始化这些自定义(非 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

【问题讨论】:

  • List 应该做什么,Graph 应该做什么?

标签: c++ arrays object


【解决方案1】:

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

lists = new List*[listCount];

【讨论】:

    【解决方案2】:

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

    改变

    lists = new List[listCount];
    

    到

    lists = new List*[listCount];
    

    【讨论】:

      猜你喜欢
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多