類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。
建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。
使用初始化列表來初始化字段:
line::line( double len):length(len)//相當於通過有參構造,設定了length的屬性;
上面的語法等同於如下語法:
line::line( double len)
假設有乙個類 c,具有多個字段 x、y、z 等需要進行初始化,同理地,您可以使用上面的語法,只需要在不同的字段使用逗號進行分隔,如下所示:
c::c( double a, double b, double c): x(a), y(b), z(c)
//相當於通過初始化列表的方式,對c類中的屬性(a,b,c)都進行了初始化賦值!
類的析構函式是類的一種特殊的成員函式,它會在每次刪除所建立的物件時執行。
析構函式的名稱與類的名稱是完全相同的,只是在前面加了個波浪號(~)作為字首,它不會返回任何值,也不能帶有任何引數。析構函式有助於在跳出程式(比如關閉檔案、釋放記憶體等)前釋放資源。
類初始化列表
以前在寫 時用初始化列表,因為前輩們說效率更高,也沒有去想為什麼。最近看 item4 確保物件在使用前被初始化,恍然大悟。如果使用賦值的方式在建構函式中初始化 類成員變數 會先呼叫這個 類成員變數 類的預設建構函式,再呼叫賦值函式。而使用初始化列表初始化 類成員變數 只會呼叫這個 類成員變數 類的拷...
類初始化列表
初始化類的成員有兩種方式,一是使用初始化列表,二是在建構函式體內進行賦值操作。使用初始化列表主要是基於效能問題,對於內建型別,如int,float等,使用初始化類表和在建構函式體內初始化差別不是很大,但是對於類型別來說,最好使用初始化列表,為什麼呢?由上面的測試可知,使用初始化列表少了一次呼叫預設建...
初始化 1 預設初始化 列表初始化
初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...