內(nèi)聯(lián)函數(shù)
使用inline關(guān)鍵字將函數(shù)變?yōu)閮?nèi)聯(lián)函數(shù)揪胃,函數(shù)內(nèi)聯(lián)是為了降低函數(shù)調(diào)用時(shí)占用的多余時(shí)間蛮浑,多余時(shí)間的產(chǎn)生在,程序需要把函數(shù)的變量以及返回值壓入棧中只嚣,再跳轉(zhuǎn)到函數(shù)執(zhí)行的位置沮稚,最后在將返回值出棧。
函數(shù)內(nèi)聯(lián)的原理是直接將調(diào)用函數(shù)的代碼拷貝到執(zhí)行函數(shù)的那段代碼中册舞。
這種做法雖然降低了函數(shù)的調(diào)用時(shí)間蕴掏,但是這樣使代碼的相同率增加,造成代碼膨脹调鲸。只有語句較少的函數(shù)才會(huì)使用內(nèi)聯(lián)函數(shù)盛杰。
inline void test_a()
{
cout << "這是一個(gè)內(nèi)聯(lián)函數(shù)" << "\n" << endl;
}
int main()
{
test_a();
}
函數(shù)重載
函數(shù)重載的目的是為了使函數(shù)的命名變得簡(jiǎn)單,編譯器通過函數(shù)傳入?yún)?shù)的數(shù)量與參數(shù)的類型藐石,進(jìn)行區(qū)分,應(yīng)該調(diào)用那個(gè)函數(shù)即供。
函數(shù)的返回值類型不同時(shí),不是函數(shù)的重載于微,那稱為函數(shù)的重定義逗嫡。
void test_a()
{
cout << "這是一個(gè)內(nèi)聯(lián)函數(shù)" << "\n" << endl;
}
void test_a(int a, int b)
{
cout << "第一個(gè)重載函數(shù)" << endl;
}
void test_a(long c, long d)
{
cout << "第二個(gè)重載函數(shù)" << endl;
}
void test_a(double e, double f)
{
cout << "第三個(gè)重載函數(shù)" << endl;
}
int main()
{
test_a();
test_a(1,2);
test_a(300000000000,300000000);//依舊調(diào)用的是第一個(gè)重載函數(shù)
test_a(3.1,3.2);
}
函數(shù)的缺省參數(shù)
函數(shù)的缺省值相當(dāng)于函數(shù)的默認(rèn)值,缺省值的目的是為了增加函數(shù)的可擴(kuò)充性株依。
void test(int a=10, int b=20,int c=30)
{
cout << "第一個(gè)數(shù)\t\n"<<a<<"第二個(gè)數(shù)\t\n"<<b<<"第三個(gè)數(shù)\t"<<c;
}
int main()
{
test();
test(11,22);
//test(,20,80);
}