#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
。