前言
重新拿起曾經(jīng)尚未填的C++的坑,從現(xiàn)在我會繼續(xù)更新C++的相關(guān)內(nèi)容,希望各位能夠支持
一、缺省參數(shù)
1.缺省參數(shù)的概念
缺省參數(shù)是聲明或定義函數(shù)時為函數(shù)的參數(shù)指定一個缺省值。在調(diào)用該函數(shù)時,如果沒有指定實
參則采用該形參的缺省值,否則使用指定的實參
void Func(int a = 0)
{
cout << a << endl;
}
int main()
{
Func(); // 沒有傳參時,使用參數(shù)的默認(rèn)值
Func(10); // 傳參時,使用指定的實參
return 0;
}
2.缺省函數(shù)的分類
(1)全缺省參數(shù)
void Func(int a = 10, int b = 20, int c = 30)
{
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}
(2)半缺省參數(shù)
void Func(int a, int b = 10, int c = 20)
{
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}
3.使用注意
(1)半缺省參數(shù)必須從右往左依次來給出,不能間隔著給
就是一旦你使用了默認(rèn)參數(shù),那么該默認(rèn)參數(shù)左邊就都要給默認(rèn)參數(shù),像下面這種就不行
(2)缺省參數(shù)不能在函數(shù)聲明和定義中同時出現(xiàn)
默認(rèn)參數(shù)放在函數(shù)聲明中,在函數(shù)定義中不能出現(xiàn)默認(rèn)參數(shù)(如果你沒有聲明就可以在定義中有),如果你定義和聲明中都有的話就會報錯
(3)缺省值必須是常量或者全局變量
二、函數(shù)重載
1.函數(shù)重載的概念
是函數(shù)的一種特殊情況,C++允許在同一作用域中聲明幾個功能類似的同名函數(shù),這
些同名函數(shù)的形參列表(參數(shù)個數(shù) 或 類型 或 類型順序)不同,常用來處理實現(xiàn)功能類似數(shù)據(jù)類型
不同的問題。(注意函數(shù)的返回值不能作為函數(shù)重載的條件
)
3.函數(shù)重載的原理–名字修飾(name Mangling)
以下用Linux的環(huán)境下編譯后的結(jié)果
1.C語言函數(shù)編譯后的結(jié)果
2.C++編譯后的結(jié)果
從以上的圖我們可以看出C++在編譯是會將函數(shù)重載的各種函數(shù)在名字上會有所不同
三、引用
1.引用的概念
引用不是新定義一個變量,而是給已存在變量取了一個別名,編譯器不會為引用變量開辟內(nèi)存空3間,它和它引用的變量共用同一塊內(nèi)存空間(比如你教張三,你的小名叫二狗,都是指的你)(
引用類型必須和引用實體是同種類型的
)
void TestRef()
{
int a = 10;
int& ra = a;//<====定義引用類型
printf("%p\n", &a);
printf("%p\n", &ra);
}
2.引用特性
引用在定義時必須初始化
- 一個變量可以有多個引用
- 引用一旦引用一個實體,再不能引用其他實體
void TestRef()
{
int a = 10;
// int& ra; // 該條語句編譯時會出錯
int& ra = a;
int& rra = a;
printf("%p %p %p\n", &a, &ra, &rra);
}
3.引用的使用
1.做參數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-414474.html
void Swap(int& left, int& right)
{
int temp = left;
left = right;
right = temp;
}
2.做返回值文章來源地址http://www.zghlxwxcb.cn/news/detail-414474.html
int& Count()
{
static int n = 0;
n++;
// ...
return n;
}
到了這里,關(guān)于C++之入門之缺省參數(shù)&&函數(shù)重載&&引用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!