#include "PQueue.h"

struct arcT;

struct coordT {
    double x, y;
};

struct nodeT {
    string name;
    coordT* coordinates;
    PQueue<arcT *> outgoing_arcs;
};

struct arcT {
    nodeT* start, end;
    int weight;
};

int main(){
    nodeT* node = new nodeT; //gives error, there is no constructor
}

我的目的是在堆中创建一个新的nodeT。错误是:

最佳答案

PQueue<arcT *>没有适当的默认构造函数,因此编译器无法生成nodeT的默认构造函数。为PQueue<arcT *>设置适当的默认构造函数,或为nodeT添加用户定义的默认构造函数,以适当地构造outgoing_arcs

10-08 08:29