gpt4 book ai didi

c++ - int() 在 C++ 中做什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:11 24 4
gpt4 key购买 nike

以下代码可以通过编译并在控制台上打印 0。我在 STL 中看到了类似的代码。 C++ 中的 int 类型是否有构造函数? int() 是对某个已定义函数的调用吗?

int main()
{
int a = int();
cout << a << endl;
return 0;
}

最佳答案

在这种情况下,

int a = int(); // 1)

它对a 进行值初始化,因此它的值是0。此语法不需要为内置类型(如 int)提供构造函数。

请注意,这种形式是必需的,因为以下内容被解析为函数声明,而不是初始化:

int a(); // 2) function a() returns an int

在C++11中你可以用更直观的语法实现值初始化:

int a{}; // 3)

编辑 在这种特殊情况下,在

上使用 1) 或 3) 没有什么好处
int a = 0;

但考虑

template <typename T>
void reset(T& in) { in = T(); }

然后

int i = 42;
reset(i); // i = int()

关于c++ - int() 在 C++ 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26476457/

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