我发现很多文章解释了“默认初始化和值初始化”之间的区别,但实际上我并没有理解清楚。
这是一个例子:
class A{
public:
int x;
};
int main(){
A a;// default initialization so x has undefined value.
A b = A(); // value initialization so x is a scalar thus it is value initialized to 0
}
正如我猜想的那样,上面是可以的,但在这里:
int value = 4; // is this considered a value-initialization?
请帮助我了解两种初始化形式之间的主要区别。