成員函數(shù)與內(nèi)聯(lián)函數(shù) 成員函數(shù)一定是內(nèi)聯(lián)函數(shù)?
成員函數(shù)一定是內(nèi)聯(lián)函數(shù)?不一定。成員函數(shù)屬于對(duì)象,而靜態(tài)函數(shù)屬于類(lèi)。如果函數(shù)是在類(lèi)中定義的,編譯器將默認(rèn)為內(nèi)聯(lián)函數(shù)。如果輸出函數(shù)的定義,并在函數(shù)的聲明中添加關(guān)鍵字inline,則函數(shù)將成為inline
成員函數(shù)一定是內(nèi)聯(lián)函數(shù)?
不一定。
成員函數(shù)屬于對(duì)象,而靜態(tài)函數(shù)屬于類(lèi)。如果函數(shù)是在類(lèi)中定義的,編譯器將默認(rèn)為內(nèi)聯(lián)函數(shù)。如果輸出函數(shù)的定義,并在函數(shù)的聲明中添加關(guān)鍵字inline,則函數(shù)將成為inline函數(shù)。否則,它將是一個(gè)成員函數(shù)。
成員函數(shù)一定是內(nèi)聯(lián)函數(shù)嗎?
不是必需的。當(dāng)成員函數(shù)體寫(xiě)在類(lèi)的聲明中,沒(méi)有l(wèi)oop語(yǔ)句和switch語(yǔ)句時(shí),則為內(nèi)聯(lián)函數(shù),其余為非內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)函數(shù)的定義:將函數(shù)定義為內(nèi)聯(lián)函數(shù)就是在程序中的每個(gè)調(diào)用點(diǎn)將其“內(nèi)聯(lián)”展開(kāi)。在函數(shù)返回類(lèi)型之前添加inline關(guān)鍵字。在類(lèi)聲明中定義的成員函數(shù)自動(dòng)成為內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)的應(yīng)用:
1。重復(fù)調(diào)用函數(shù);
2。函數(shù)只有幾行,不包含for、while和switch語(yǔ)句。內(nèi)聯(lián)函數(shù)應(yīng)該在頭文件中定義,這與其他函數(shù)不同。
什么是內(nèi)聯(lián)函數(shù)啊~和普通的成員函數(shù)有什么區(qū)別嗎?
與普通函數(shù)相比,內(nèi)聯(lián)函數(shù)的優(yōu)點(diǎn)如下:
消除了函數(shù)調(diào)用的時(shí)間開(kāi)銷(xiāo)。從源代碼層面看,內(nèi)聯(lián)函數(shù)具有函數(shù)的結(jié)構(gòu),但編譯后不具有函數(shù)的性質(zhì)。因?yàn)楸仨氃谡{(diào)用函數(shù)之前保存寄存器,在函數(shù)返回時(shí)還原寄存器,并且復(fù)制實(shí)際參數(shù),所以程序也必須在新位置執(zhí)行。與宏定義相比,內(nèi)聯(lián)函數(shù)的優(yōu)點(diǎn)如下:
1。內(nèi)聯(lián)函數(shù)可以在運(yùn)行時(shí)調(diào)試,但宏定義不能。編譯器會(huì)對(duì)內(nèi)聯(lián)函數(shù)的參數(shù)類(lèi)型進(jìn)行安全檢查或自動(dòng)類(lèi)型轉(zhuǎn)換(與普通函數(shù)相同),但宏定義不會(huì)。內(nèi)聯(lián)函數(shù)可以訪問(wèn)類(lèi)的成員變量,但宏定義不能。聲明成員函數(shù)在類(lèi)號(hào)中同時(shí)定義,自動(dòng)轉(zhuǎn)換為內(nèi)聯(lián)函數(shù)