C++中的默认初始化和值初始化有以下不同之处:
默认初始化:当变量被声明但没有被显式初始化时,它将被默认初始化。默认初始化的行为取决于变量的类型,例如基本数据类型的变量会被初始化为未定义的值,而类类型的变量会调用默认构造函数进行初始化。
值初始化:在C++11之后,可以使用花括号{}来进行值初始化,这种初始化方式会将变量初始化为特定的值,例如,对于基本数据类型的变量,值初始化会将其初始化为0,而对于类类型的变量,值初始化会调用默认构造函数进行初始化。
因此,可以总结为默认初始化是在声明变量时没有显式初始化时的行为,而值初始化是一种特定的初始化方式,可以在声明变量时使用{}进行初始化。