【发布时间】:2016-01-18 14:21:01
【问题描述】:
考虑以下程序:
#include <iostream>
struct Test
{
int a;
};
int main()
{
Test t=Test();
std::cout<<t.a<<'\n';
}
Test t=Test(); 值初始化一个临时值并复制初始化它。 (大多数编译器优化了复制操作(来源:value initialization))。但是值初始化是由C++03 引入的。当 Test t=Test(); 被执行时,C++98 会发生什么?是否保证我将在任何C++98 编译器上得到 0 作为输出(在这种情况下为t.a 的值)? .是在C++98中进行默认初始化吗?
【问题讨论】:
-
This question 您可能会感兴趣。
标签: c++ object initialization c++03 c++98