gpt4 book ai didi

C++ 构造函数语法和零初始化

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:21 24 4
gpt4 key购买 nike

这是一个关于 C++ 语法的简短问题:

class arrayInit {
public:
bool vars[2];

arrayInit() : vars() {} //1
};

class array {
public:
bool vars[2];
array() {} //2
};

1 和 2 的作用是什么?

为什么他们不像这样进行零初始化:bool vars[2]={};?

arrayInit():array() 的目的是什么?它叫什么,所以我可以搜索它?

来自:https://msujaws.wordpress.com/2010/06/16/initializing-an-array-in-c/

最佳答案

What does 1 and 2 do?

1 和 2 都定义了各自类型的默认构造函数

Why they don't zero initialize like this: bool vars[2]={};?

如果他们使用支持 c++11 的编译器,他们就可以。 var() 也将值初始化 与 vars[2] = {} 相同的数组会将所有元素显式初始化为 false

What is the purpose of arrayInit() : and array()? and what is it called so I could search for it?

它们被称为默认构造函数。 C++ 编译器会为你创建它们,除非你想对它们做一些特殊的事情。如果您提到 :(冒号)之外的内容,则该表达式称为 initializer list

阅读更多 here

关于C++ 构造函数语法和零初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33449568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com