admin 管理员组

文章数量: 1184232


2024年1月28日发(作者:亚马逊雨林被称人类禁区)

c++ struct 默认构造函数

在C++中,当我们使用struct定义一个结构体时,默认情况下会为其生成一个默认构造函数。这个默认构造函数会将结构体的所有成员变量都初始化为0或者默认值。但是如果我们定义了自己的构造函数,那么默认构造函数就不会再被生成。

当我们使用默认构造函数创建一个结构体对象时,可以省略括号,也可以使用空括号,如下所示:

```

struct Person {

std::string name;

int age;

};

int main() {

Person p1; // 省略括号

Person p2(); // 使用空括号

return 0;

}

```

这两种方式都会调用默认构造函数,将name初始化为空字符串,age初始化为0。但是需要注意的是,如果我们定义了自己的构造函数,那么默认构造函数就不会再被生成,如下所示:

```

- 1 -

struct Person {

std::string name;

int age;

Person(std::string n, int a) {

name = n;

age = a;

}

};

int main() {

Person p1; // 错误,没有默认构造函数

Person p2('Tom', 18); // 正确,使用自定义构造函数

return 0;

}

```

在这个例子中,我们定义了一个带有两个参数的构造函数,所以默认构造函数就不再被生成。因此,如果我们想要创建一个没有参数的Person对象,就会出现错误。

- 2 -


本文标签: 默认 结构 使用 创建 对象