十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
個(gè)人博客首頁(yè)(點(diǎn)擊查看詳情) -- https://blog.51cto.com/11495268

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),網(wǎng)站設(shè)計(jì),網(wǎng)站托管運(yùn)營(yíng)等一站式綜合服務(wù)型公司,專(zhuān)業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競(jìng)爭(zhēng)對(duì)手中脫穎而出創(chuàng)新互聯(lián)公司。
C++語(yǔ)言 中任何事情都需要用到函數(shù),本文 介紹 函數(shù)相關(guān)的基本概念,了解 這有樣的 存在即可 -- 函數(shù)定義、函數(shù)調(diào)用、函數(shù)重載、函數(shù)模板(至于 C++中 特有的 類(lèi)函數(shù) 本文暫不介紹)
// 定義函數(shù)時(shí) 函數(shù)名后面 括號(hào)中 參數(shù) 為 形參
返回值類(lèi)型 函數(shù)名([形參])
{
函數(shù)體
}
// 函數(shù) 調(diào)用時(shí) 函數(shù)名后面 括號(hào)中 參數(shù) 為 實(shí)參
#include
using namespace std;
void exchange_num(int *first_num, int *sec_num)
{
int exchange_tmp = 0;
exchange_tmp = *first_num;
*first_num = *sec_num;
*sec_num = exchange_tmp;
}
int main(void)
{
int first_num = 1;
int sec_num= 10;
// 調(diào)用函數(shù)
exchange_num(&first_num, &sec_num);
cout << "first_num:" << first_num << endl;
cout << "sec_num:" << sec_num << endl;
return 0;
}
C++ 允許同一個(gè) 函數(shù)名 定義 多個(gè) 函數(shù),重載函數(shù) 必須 參數(shù)個(gè)數(shù) 或者 參數(shù)類(lèi)型 不同
// 函數(shù) 調(diào)用時(shí) 函數(shù)名后面 括號(hào)中 參數(shù) 為 實(shí)參
#include
using namespace std;
void exchange_num(int *first_num, int *sec_num)
{
int exchange_tmp = 0;
exchange_tmp = *first_num;
*first_num = *sec_num;
*sec_num = exchange_tmp;
}
void exchange_num(double *first_num, double *sec_num)
{
double exchange_tmp = 0;
exchange_tmp = *first_num;
*first_num = *sec_num;
*sec_num = exchange_tmp;
}
int main(void)
{
int ifirst_num = 1;
int isec_num= 10;
double dfirst_num = 1.1;
double dsec_num = 10.01;
// 調(diào)用函數(shù)
exchange_num(&ifirst_num, &isec_num);
exchange_num(&dfirst_num, &dsec_num);
cout << "ifirst_num:" << ifirst_num << endl;
cout << "isec_num:" << isec_num << endl;
cout << "dfirst_num:" << dfirst_num << "\ndsec_num:" << dsec_num << endl;
return 0;
}
函數(shù)重載 時(shí) 可以發(fā)現(xiàn),有些 重載函數(shù) 只是參數(shù)類(lèi)型不同罷了,在 C++語(yǔ)言中,數(shù)據(jù)類(lèi)型 較多,如此 豈不是 每個(gè)類(lèi)型 都需要 寫(xiě)個(gè) 重載函數(shù)(理論上 這是 可行的),但是 造成大量的 重復(fù)代碼,函數(shù)模板 正是 解決 這個(gè)問(wèn)題;建議 通用函數(shù),在函數(shù)調(diào)用時(shí),系統(tǒng)會(huì)根據(jù) 實(shí)參的類(lèi)型 來(lái)取代 模板中的 虛擬類(lèi)型,從而實(shí)現(xiàn) 不同函數(shù)的功能
// 函數(shù) 調(diào)用時(shí) 函數(shù)名后面 括號(hào)中 參數(shù) 為 實(shí)參
// 模板 函數(shù)調(diào)用 不支持 隱式類(lèi)型轉(zhuǎn)換
#include
using namespace std;
// class 關(guān)鍵字也可以用 typename 關(guān)鍵字替換
template
void exchange_num(c2 *first_num, c2 *sec_num)
{
c2 exchange_tmp = 0;
exchange_tmp = *first_num;
*first_num = *sec_num;
*sec_num = exchange_tmp;
}
int main(void)
{
int ifirst_num = 1;
int isec_num= 10;
double dfirst_num = 1.1;
double dsec_num = 10.01;
// 調(diào)用函數(shù)
exchange_num(&ifirst_num, &isec_num);
exchange_num(&dfirst_num, &dsec_num);
cout << "ifirst_num:" << ifirst_num << endl;
cout << "isec_num:" << isec_num << endl;
cout << "dfirst_num:" << dfirst_num << "\ndsec_num:" << dsec_num << endl;
return 0;
}