l C++作用域運(yùn)算符 :
“ ::”主要有2種應(yīng)用方式。
其一,類(lèi)與類(lèi)的成員之間
聲明一個(gè)類(lèi)A,類(lèi)A里聲明了一個(gè)成員函數(shù)void f( ),但沒(méi)有在類(lèi)的聲明里給出f的定義,
那么在類(lèi)外定義f時(shí),就要寫(xiě)成void A::f( ),表示這個(gè)f( )函數(shù)是類(lèi)A的成員函數(shù)。
其二,作用域。
簡(jiǎn)單分為:全局作用域,局部作用域,語(yǔ)句作用域
作用域優(yōu)先級(jí):范圍越小優(yōu)先級(jí)越高
作用域運(yùn)算符:"::"
如果希望在局部變量的作用域內(nèi)使用同名的全局變量,可以在該變量前加上"::","::"稱(chēng)為作用域運(yùn)算符.
### 構(gòu)造函數(shù):
構(gòu)造函數(shù)是成員函數(shù)的一種,名字 與 類(lèi) 的名字相同,可以有參數(shù),但是不能有返回值(void也不行)。
其作用是對(duì) 對(duì)象進(jìn)行初始化,比如給成員對(duì)象賦初始值。
若定義類(lèi) 時(shí)沒(méi)有寫(xiě)構(gòu)造函數(shù),則編譯器自動(dòng)生成一個(gè)默認(rèn)的無(wú)參的構(gòu)造函數(shù)。
(默認(rèn)構(gòu)造函數(shù)沒(méi)有參數(shù),不做任何操作)。
對(duì)象生成時(shí),構(gòu)造函數(shù)自動(dòng)被調(diào)用,對(duì)象一旦生成,就再也不能在其上執(zhí)行構(gòu)造函數(shù)。
一個(gè)類(lèi)可以有多個(gè)構(gòu)造函數(shù)。
# 為什么需要構(gòu)造函數(shù)?
其執(zhí)行了必要的初始化操作,不必專(zhuān)門(mén)再寫(xiě)初始化函數(shù),亦不必?fù)?dān)心忘記書(shū)寫(xiě)初始化函數(shù)。
什么是構(gòu)造函數(shù)?通俗的講,在類(lèi)中,函數(shù)名 和 類(lèi)名 相同的函數(shù)稱(chēng)為構(gòu)造函數(shù)。
它的作用是在建立一個(gè)對(duì)象時(shí),作某些初始化的工作(例如對(duì)數(shù)據(jù)賦予初值),
(僅僅負(fù)責(zé)創(chuàng)建對(duì)象而不做任何賦值操作..疑問(wèn)?)在一個(gè)類(lèi)中可以有多個(gè)構(gòu)造函數(shù)。
如果一個(gè)都沒(méi)有,編譯器將為該類(lèi)產(chǎn)生一個(gè)默認(rèn)的構(gòu)造函數(shù)。
構(gòu)造函數(shù)惟一的語(yǔ)法限制是 它不能指定 返回類(lèi)型,甚至void 也不行。
不帶參數(shù)的構(gòu)造函數(shù) 一般形式為
類(lèi)名 對(duì)象名( ) { 函數(shù)體 }
帶參數(shù)的構(gòu)造函數(shù):不帶參數(shù)的構(gòu)造函數(shù),只能以固定不變的值初始化對(duì)象。
帶參數(shù)構(gòu)造函數(shù)的初始化要靈活的多,通過(guò)傳遞給 構(gòu)造函數(shù) 的參數(shù),可以賦予對(duì)象 不同的初始值。
一般形式為:構(gòu)造函數(shù)名(形參表);
創(chuàng)建對(duì)象使用時(shí):類(lèi)名 對(duì)象名(實(shí)參表);
構(gòu)造函數(shù)參數(shù)的初始值:構(gòu)造函數(shù)的參數(shù)可以有缺省值。
當(dāng)定義對(duì)象時(shí),如果不給出參數(shù),就自動(dòng)把相應(yīng)的缺省參數(shù)值賦給對(duì)象。一般形式為:
構(gòu)造函數(shù)名(參數(shù)=缺省值,參數(shù)=缺省值,……);析構(gòu)函數(shù):
當(dāng)一個(gè)類(lèi)的對(duì)象離開(kāi)作用域時(shí),析構(gòu)函數(shù)將被調(diào)用(系統(tǒng)自動(dòng)調(diào)用)。
析構(gòu)函數(shù)的名字和類(lèi)名一樣,不過(guò)要在前面加上 ~ 。對(duì)一個(gè)類(lèi)來(lái)說(shuō),只能允許一個(gè)析構(gòu)函數(shù),析構(gòu)函數(shù)不能有參數(shù),
并且也沒(méi)有返回值。析構(gòu)函數(shù)的作用是完成一個(gè)清理工作,如釋放從堆中分配的內(nèi)存。
一個(gè)類(lèi)中可以有多個(gè)構(gòu)造函數(shù),但析構(gòu)函數(shù)只能有一個(gè)。對(duì)象被析構(gòu)的順序,與其建立時(shí)的順序相反,
即后構(gòu)造的對(duì)象先析構(gòu)。
析構(gòu)函數(shù)(destructor) 與構(gòu)造函數(shù)相反,當(dāng)對(duì)象脫離其作用域時(shí)(例如對(duì)象所在的函數(shù)已調(diào)用完畢),
系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。析構(gòu)函數(shù)往往用來(lái)做“清理善后”工作(例如在建立對(duì)象時(shí)用new開(kāi)辟了一片內(nèi)存空間,
應(yīng)在退出前在析構(gòu)函數(shù)中用delete釋放)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注