大佬能帮我看看为啥老是报错吗?
代码如下:#include <iostream>
using namespace std;
struct Listnode
{
int val;
Listnode* next;
Listnode(int x)
{
val = x;
next = nullptr;
}
};
int main()
{
Listnode* head = nullptr;
head = new Listnode; //出错位置
return 0;
}
出错原因:
严重性 代码 说明
错误(活动) E0291 类 "Listnode" 不存在默认构造函数
这样改了之后就不会报错了,我知道是编译器没有提供默认构造函数的原因,但是为啥我新建一个head指针会调用默认构造函数呢?
#include <iostream>
using namespace std;
struct Listnode
{
int val;
Listnode* next;
Listnode(int x)
{
val = x;
next = nullptr;
}
Listnode()
{
}
};
int main()
{
Listnode* head = nullptr;
head = new Listnode;
return 0;
} 第一段代码只定义了传入int的构造函数,但你却在调用无参构造函数,当然报错。
第二段代码你定义了无参构造函数,因此不会报错。
new Listnode(1) 赚小钱 发表于 2021-8-4 08:42
第一段代码只定义了传入int的构造函数,但你却在调用无参构造函数,当然报错。
第二段代码你定义了无参构 ...
为啥我定义一个head指针会调用无参构造? 去看cpp primer
页:
[1]