此常见问题解答涉及聚合和POD,并涵盖以下材料:
以下代码片段与C/C++编译器完美编译:
#include <stdio.h>
int main()
{
int x = {5}; //<-- why this compiles?
printf("x = %d",x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是5.
x这里以复合形式初始化,尽管它是整数类型.我想了解这里的转换以及原因.
在GotW#6b第2部分中,我们找到了代码
class polygon {
public:
polygon() : area{-1} {}
//....
double area;
};
Run Code Online (Sandbox Code Playgroud)
为什么我们应该使用列表初始化而不是常用的基类型area(-1)?他们的行为有什么不同的优势/情况吗?