返學(xué)費(fèi)網(wǎng) > 培訓(xùn)機(jī)構(gòu) > 福州博洋信息人才
四、使用引用(reference)代替指針進(jìn)行參數(shù)傳遞
在C語言中,如果一個(gè)函數(shù)需要修改用作參數(shù)的變量值的時(shí)候 ,參數(shù)應(yīng)該聲明為指針類型。例如:
void Add(int *a)
{
*a++;
}
調(diào)用時(shí)則使用
Add(&x); //其中x為int或可以轉(zhuǎn)化為int的類型,如unsigned int, 但這時(shí)候編譯器通過回給出warning
對(duì)于復(fù)雜的程序,使用指針容易出錯(cuò),程序也難以讀懂。在C++中,對(duì)于上述情況 可以使用引用來代替指針,使程序更加清晰易懂。引用就是對(duì)變量取的一個(gè)別名,對(duì)引用進(jìn)行操作,這就相當(dāng)于對(duì)原有變量進(jìn)行操作。例如使用引用的函數(shù)定義為:
void Add(int& a)
{
a++; //a為一個(gè)整數(shù)的引用
}
調(diào)用時(shí)使用
Add(x); //其中x為int
這個(gè)函數(shù)與使用指針的上一個(gè)函數(shù)的功能是一樣的,然而代碼卻更為簡(jiǎn)潔和清晰易懂。
五、使用缺省參數(shù)
在C++中函數(shù)可以使用缺省參數(shù),例如:
void PutHzxy(char *str,int x=-1, int y=-1)
{
if(x==-1)
x=wherex();
if(y==-1)
x=wherex();
moveto(x,y);
PutHx(str);
}
可以有三種方式調(diào)用函數(shù)PutHzxy(),例如:
PutHzxy("C++語言");//使用缺省參數(shù)在當(dāng)前位置輸出
PutHzxy("C++語言",10,10);//沒有使用缺省參數(shù)
PutHzxy("C++語言",10);//對(duì)y使用缺省參數(shù),指定x的位置
通常的情況下,一個(gè)函數(shù)應(yīng)該具有盡可能大的靈活性。使用缺省參數(shù)為程序員處理更大的復(fù)雜性和靈活性問題提供了有效的方法,所以在C++的代碼中都大量地使用了缺省參數(shù)。
需要說明的是,所有的缺省參數(shù)必須出現(xiàn)在不缺省參數(shù)的右邊。亦即,一旦開始定義缺省參數(shù),就不可再說明非缺省的參數(shù)。
例如:
void PutHzxy(char*str,int x=-1,int y=-1)//正確
void PutHzxy(int x=-1,int y=-1,char*str)//錯(cuò)誤
六、使用STL
STL(Standard Template Library,標(biāo)準(zhǔn)模板庫(kù)), STL的代碼從廣義上講分為三類:algorithm(算法)、container(容器)和iterator(迭代器),并包括一些工具類如auto_ptr。幾乎所有的代碼都采用了模板類和模版函數(shù)的方式,這相比于傳統(tǒng)的由函數(shù)和類組成的庫(kù)來說提供了更好的代碼重用機(jī)會(huì)。
#include<vector>// 包含相關(guān)的頭文件/
typedef std::vector<int> intvector;//使用typedef 使代碼看起來更簡(jiǎn)潔
int main()
{
intvector vi;
for(int i=0;i<10,i++)
vi.push_back(i);//使用push_back添加元素
for(int i=0;i<vi.size();i++)
7月3日,高友銀成功就職北京高信達(dá)通信擔(dān)任JAVA軟件工程師
java在未來發(fā)展的幾大趨勢(shì) 一 java資訊 福州學(xué)C
7月3日,JAVA培訓(xùn)班林勝立成功就職福州博思軟件擔(dān)任軟件工程師
只要一個(gè)電話
我們免費(fèi)為您回電