列表初試化:用花括號初試化ios
直接初試化:將參數放在括號中初試化程序員
拷貝初試化:用=或者將累的對象當作初試化的參數函數
值初試化:C++中用new開闢的空間經過在要初始化的空間的類型名後跟()來啓用值初始化,而庫類型則自動對未初始化的變量啓用值初始化spa
1. 當變量爲內置類型,值初始化用0來對其初始化。code
2. 當變量爲類類型,值初始化用該類的默認構造函數初始化。對象
3. 當變量爲類類型且沒有默認構造函數時,值初始化要求程序員提供初始化值。blog
默認狀況下,動態分配的對象時默認初始化的,這意味着內置類型或組合類型的對象的值時未定義的,而類類型對象將默認構造函數進行初始化;也能夠對動態分配的對象進行值初始化,只需在類型名以後跟一對空括號便可。io
在合成的默認構造函數中,若是是類對象,那麼調用這個對象的默認構造函數,若是是內置類型則未定義。class
#include <iostream> using namespace std; class A{ public: private: A &operator=(const A&); int a; }; int main(int argc, char **argv) { A a, *pa = new A(); return 0; }
a={a=-6589} //沒有給a初試化 *pa={a=0} //內置類型初試化爲0