gpt4 book ai didi

c++ - int 的默认构造函数

转载 作者:IT老高 更新时间:2023-10-28 21:46:31 26 4
gpt4 key购买 nike

Possible Duplicate:
Why is it an error to use an empty set of brackets to call a constructor with no arguments?

在对 this question 的答复中据说

ints are default-constructed as 0, as if you initialized them with int(). Other primitive types are initialized similarly (e.g., double(), long(), bool(), etc.).

就在我向我的一位同事解释这一点时,我编写了以下代码,compiled (gcc-4.3.4) and ran ,并观察到意外行为。

#include <iostream>

int main() {
int i();
std::cout << i << std::endl; // output is 1
}

为什么输出的是 1 而不是 0

最佳答案

最令人头疼的解析在这里发挥作用。您实际上是在声明一个函数 i,而不是一个 int 变量。它甚至不应该编译(除非您实际上在某处定义了一个函数 i...是吗?)。

要对 int 进行值初始化,您需要:

int i = int(); 

关于c++ - int 的默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11117450/

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