rt,本蒟蒻在写链表模版,遇到了几个问题:
template<typename T=int>
class Linked_list{
但我用
Linked_list a;
CE 了,不应该默认是 int
吗?
struct node{
T num;
node *l,*r;
node(const T &num,node *l=NULL,node *r=NULL):num(num),l(l),r(r){}
node():l(NULL),r(NULL){}
void del(){if(r!=NULL) r->del(),delete r;}
} head;
可以过编译,但我改了一下:
struct node{
T num;
node *l,*r;
node(const T &num,node *l=NULL,node *r=NULL):num(num),l(l),r(r){}
//node():l(NULL),r(NULL){}
void del(){if(r!=NULL) r->del(),delete r;}
} head;
Linked_list(){head.l=head.r=NULL;}
也 CE 了,按理说应该会调用默认的构造函数,但它提示构造函数的参数不够,为什么呢?