構造函數(shù)
1.概念
構造函數(shù):一個特殊的成員函數(shù),名字與類名相同,創(chuàng)建類類型對象的時候,由編譯器自動調(diào)用,在對象的生命周期內(nèi)只且調(diào)用一次,以保證每個數(shù)據(jù)成員都有一個合適的初始值。
2.構造函數(shù)的特性
函數(shù)名和類名相同;
沒有返回值;
有初始化列表(可以不用);
新對象被創(chuàng)建,由編譯器自動調(diào)用,且在對象的生命周期內(nèi)僅調(diào)用一次;
構造函數(shù)可以重載,實參決定了調(diào)用哪個構造函數(shù);
如果沒有顯示的調(diào)用時,編譯器會提供一個默認的構造函數(shù);
無參構造函數(shù)和帶有缺省值的構造函數(shù)都認為是缺省構造函數(shù),并且缺省構造函數(shù)只能有一個;
構造函數(shù)不能用const修飾(因為const修飾類的成員函數(shù)時,該函數(shù)不能修改成員變量,但是構造函數(shù)要修改類的成員變量,因此不可以由const修飾)
3.初始化列表
以冒號開始,接著是以逗號分隔的數(shù)據(jù)成員列表,每個數(shù)據(jù)成員后面跟一個放在圓括號中的初始化式。
4.初始化順序
數(shù)據(jù)成員在類中定義的順序就是參數(shù)列表中的初始化順序;
初始化列表僅用于初始化數(shù)據(jù)成員,并不指定這些數(shù)據(jù)成員的初始化順序;
每個成員在初始化列表中只能出現(xiàn)一次;
盡量避免使用成員初始化成員,成員初始化順序最好和成員的定義順序保持一致。
類中包含以下成員必須要放在初始化列表中初始化:
(1)引用數(shù)據(jù)類型
(2)const數(shù)據(jù)類型
(3)類類型成員(該類沒有缺省的構造函數(shù))
5.默認構造函數(shù)
默認構造函數(shù)使用與成員變量初始化相同的規(guī)則初始化成員,對于內(nèi)置類型和復合類型的成員,如組、指針,只對定義在全局定義作用于的對象初始化,對于局部作用域的內(nèi)置和復合類型不作初始化。
6.構造函數(shù)的作用
構建對象
初始化對象
類型轉(zhuǎn)換
7.explcit
用explicit修飾構造函數(shù),抑制由構造函數(shù)定義的隱式轉(zhuǎn)換,explicit關鍵字類內(nèi)部的構建聲明上,在類的定義體外部的定義上不再重復。
-
C++
+關注
關注
22文章
2108瀏覽量
73621 -
構造函數(shù)
+關注
關注
0文章
5瀏覽量
2734
發(fā)布評論請先 登錄
相關推薦
評論