首页 > 解决方案 > 创建附加到每个节点的节点列表(c ++)

问题描述

我正在尝试使用指向数组的指针创建每个节点,该数组将包含对象类中的其他节点(相同类型)。

class node
{
public:
    node(int degree, bool visited, int xpos, int ypos);
    node *adjList = new node[9]; 
    float * valueList = new float[832];
    int size = 0;
    int adjSize = 0;
    int xpos, ypos;
    int degree = 0;
    bool visited;
};

这条线是

node *adjList = new node[9]; 

这不起作用。这是说这个声明没有匹配的构造函数。我尝试创建一个空的构造函数,但这会破坏我的代码。

可视化是这样的:

节点:[0] ---> [[3][4]][8]]

标签: c++arraysobjectconstructoradjacency-list

解决方案


这条线

   node *adjList = new node[9];

创建创建九个node对象并尝试默认构造每个对象,因为您的类中没有默认构造函数node,编译器会抱怨。只需向您的node类添加一个默认构造函数:

class node
{

   public:

       node(int degree, bool visited, int xpos, int ypos);

       node(); //Default ctor

       node *adjList = new node[9]; 
       float * valueList = new float[832];
       int size = 0;
       int adjSize = 0;
       int xpos, ypos;
       int degree = 0;
       bool visited;
};

推荐阅读