御笔剑客 发表于 2018-8-23 11:01:35

关于struct定义构造函数的问题

struct Elem{
    int k,num;
    Elem (int _k,int _num){k=_k,num=_num;}
}Queue;

error: no matching function for call to 'Elem::Elem()'|

为什么这个会报错呢?我的传参没问题啊

claws0n 发表于 2018-8-23 11:08:41

struct Elem{
    int k,num;
    Elem (int _k,int _num){k=_k,num=_num;} // Elem 不是结构体名称而已吗?怎么变函数了?
}Queue;

无符号整形 发表于 2018-8-23 11:10:36

claws0n 发表于 2018-8-23 11:08
struct Elem{
    int k,num;
    Elem (int _k,int _num){k=_k,num=_num;} // Elem 不是结构体名称而已 ...

这是C++

无符号整形 发表于 2018-8-23 11:11:29

因为当你Elem xxx的时候会调用Elem::Elem(),这个函数的无参数重载版本没定义,所以会报找不到重载版本。

御笔剑客 发表于 2018-8-23 12:12:03

无符号整形 发表于 2018-8-23 11:11
因为当你Elem xxx的时候会调用Elem::Elem(),这个函数的无参数重载版本没定义,所以会报找不到重载版本。

这样啊,我明白了,谢谢了
页: [1]
查看完整版本: 关于struct定义构造函数的问题