C/C++函數重載與缺省參數
C語言是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。下面是小編分享的C/C++函數重載與缺省參數,一起來看一下吧。
函數重載
函數多態是C++在C語言的基礎上新增的功能,默認參數讓你能夠使用不同數目的參數調用同一個函數,而函數多態(函數重載)讓你能夠使用多個同名的函數。“多態”指的是有多種形式因此函數多態允許函數可以有多種形式,類似的術語“函數重載”指的是可以有多個同名的函數,因此對名稱進行了重載,它們兩個看起來是同一回事,但我們會通常使用函數重載,可以通過函數重載來設計一系列的函數,它們完成相同的工作,但使用不同的參數列表。
重載函數就像是有多鍾含義的動詞。函數重載的關鍵是函數的參數列表(也稱為函數特徵標【function 、signature】)。如果兩個函數的參數數目和類型相同,同時參數的排列順序也相同,則它們的特徵標相同,而變量名是無關緊要的。C++允許定義名稱相同的函數,條件是它們的特徵標不同,如果參數數目和/或參數類型不同,則特徵標也不同。
我們從代碼裏面看下:
////C C++
////c語言:面向過程的語言,嚴格的先後順序,便於理解
////c++語言:面向對象的語言,先後順序沒有那麼嚴格
//
////C++是C的升級
////C++比C語言多了兩個關鍵的'知識,1、類和對象;2、模板
//
////函數重載
////對於相同(相似)的函數行為,用一個函數名進行管理
////一個函數名管理多個函數體
////構成函數重載的條件:函數名必須一致,參數列表不一致
////參數列表不一致:1、參數列表的個數不一致;2、參數對應位置的類型不一致
//
//struct MyPoint
//{
// int row, col;
//};
//
////int MyDev(int a, int b)
////{
//// return a / b;
////}
////
////char MyDev(int c, int d)
////{
//// return c / d;
////}
//
//int MyMul(int a, char c)
//{
// return a * c;
//}
//
//int MyMul(char c, int a)
//{
// return a * c;
//}
//
//int myAdd(int a, int b, int c)
//{
// return a + b + c;
//}
//
//int myAdd(int a, int b)
//{
// return a + b;
//}
//
//double myAdd(double a, double b)
//{
// return a + b;
//}
//
//MyPoint myAdd(MyPoint a, MyPoint b)
//{
// MyPoint tempPos;
// = + ;
// = + ;
// return tempPos;
//}
//
//void main()
//{
// printf("%f",myAdd(1.3,2.89));
// printf("%d", myAdd(1, 2));
//
//}
//函數的缺省參數
//在函數定義的時候,給形參給出初始值。
//當函數調用時,就可以不用再給實參,默認使用初始值
//函數調用給出實參,會用實參去替換掉默認的初始值
//缺省參數只能由後往前缺省
//缺省參數和函數重載組合會產生二義性
//缺省參數聲明和定義分開
int myMul(int a = 1, int b = 4);
//int MyAdd(int a, int b)
//{
// return a + b;
//}
//
//int MyAdd(int a, int b, int c = 1)
//{
// return a + b + c;
//}
void mySwap(int a, int b)
{
int c = a;
a = b;
b = c;
}
void main()
{
int num1 = 10;
int num2 = 20;//兩個變量是通過一段流程語句來的
//printf("%d", MyAdd(num1, num2));
//printf("%d", MyAdd());
mySwap(num1, num2);
printf("num1 = %d num2 = %d", num1, num2);
}
int myMul(int a, int b)
{
return a * b;
}
-
C語言插入排序算法及實例代碼
插入排序是排序算法的一種,下面小編為大家整理了C語言插入排序算法及實例代碼,希望能幫到大家!這裏以從小到大排序為例進行講解。基本思想及舉例説明插入排序的基本思想是,將元素逐個添加到已經排序好的數組中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好...
-
C語言學習攻略
導語:C語言作為最流行的程序設計語言,是任何一個計算機專業及其愛好者們都必須掌握的一門編程語言。下面就由小編為大家介紹一下C語言學習攻略,歡迎大家閲讀!一、C語言學習中存在的問題(一)基礎薄弱,無法適應C語言學習的課程通常安排在大一,這個時候,學生們剛剛進入...
-
計算機等級考試二級C語言筆試精選習題
應屆畢業生考試網提供了計算機等級考試二級C語言筆試精選習題,幫助考生鍛鍊解題思路,加深理解知識點。更多資料訪問yjbys計算機等級考試網。1、C語言程序的基本單位是____A)程序行B)語句C)函數D)字符、C、12、C語言程序的三種基本結構是____A、順序結構,選擇結構,...
-
C語言新人常見問題與錯誤
不知不覺,學習C語言也快一年了。雖然有C語言課,但是老師完全讓我們自己看書,在自學的過程中,和周圍同學交流中,以及後來在CSDN,BCCN,百度知道看帖回帖中,也看到許多C語言新人常遇到的問題與常犯的錯誤。不妨看看吧。以下僅供參考!對於完整的修正後的程序都在code::block...