C++中的默認初始化和值初始化有以下不同之處:
默認初始化:當變量被聲明但沒有被顯式初始化時,它將被默認初始化。默認初始化的行為取決于變量的類型,例如基本數據類型的變量會被初始化為未定義的值,而類類型的變量會調用默認構造函數進行初始化。
值初始化:在C++11之后,可以使用花括號{}來進行值初始化,這種初始化方式會將變量初始化為特定的值,例如,對于基本數據類型的變量,值初始化會將其初始化為0,而對于類類型的變量,值初始化會調用默認構造函數進行初始化。
因此,可以總結為默認初始化是在聲明變量時沒有顯式初始化時的行為,而值初始化是一種特定的初始化方式,可以在聲明變量時使用{}進行初始化。