在你考虑将问题标记为重复之前,请完整阅读问题。像
int i=int();
这样的语句,大多数程序员会说这里有值初始化,i将被值初始化。(输出为0)。但是在C++98编译器上也会输出0。下面的程序是我在C++98实现上测试的,它给我输出了0。
在上面的C++98程序中,不要说i是值初始化,因为值初始化是在C ++03中引入的。那么这里如何初始化i? 它真的是构造函数调用吗?int()看起来像是构造函数调用。正如Bjarne Stroustrup在他的书C++编程语言和TC ++ PL中所说,原始类型在C ++中也有默认构造函数。
int i=int();
这样的语句,大多数程序员会说这里有值初始化,i将被值初始化。(输出为0)。但是在C++98编译器上也会输出0。下面的程序是我在C++98实现上测试的,它给我输出了0。
#include <iostream>
int main()
{
int i=int();
std::cout<<i;
}
在上面的C++98程序中,不要说i是值初始化,因为值初始化是在C ++03中引入的。那么这里如何初始化i? 它真的是构造函数调用吗?int()看起来像是构造函数调用。正如Bjarne Stroustrup在他的书C++编程语言和TC ++ PL中所说,原始类型在C ++中也有默认构造函数。
以下链接也说在C ++中原始类型有默认构造函数:
1)http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=15
2)http://www.geeksforgeeks.org/c-default-constructor-built-in-types/
那么我可以真正地说它是整数类型的构造函数调用吗?