精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C++新手之C++編程技巧推薦

開發(fā)
本文介紹的是C++編程的一些經(jīng)驗(yàn)和技巧,是初學(xué)者很好的教程。希望能夠給你帶來幫助,一起來看。

C++語言是一個面向?qū)ο蟮恼Z言,使用C++編寫的代碼更加簡捷、高效,更具可維護(hù)性和可重用性。但是很多人使用了C++語言后卻感到C++與C編程沒有什么區(qū)別。這其實(shí)是由于對C++語言的特點(diǎn)和特色理解和使用不夠造成的。事實(shí)上,沒有任何一個程序員使用C語言的編程效率可以超過C++語言的。 

一、使用new和delete進(jìn)行動態(tài)內(nèi)存分配和釋放 

運(yùn)算符new和delete是C++新增的過算符,提供了存儲的動態(tài)分配和釋放功能。它的作用相當(dāng)于C語言的函數(shù)malloc()和free(),但是性能更為優(yōu)越。使用new比使用malloc()有以下的幾個優(yōu)點(diǎn):

(1)、new自動計(jì)算要分配類型的大小,不使用sizeof運(yùn)算符,比較省事,可以避免錯誤。

(2)、它自動地返回正確的指針類型,不用進(jìn)行強(qiáng)制指針類型轉(zhuǎn)換。

(3)、可以用new對分配的對象進(jìn)行初始化。

使用例子:

  1. (1)、int *p;   
  2. p=new int[10]; //分配一個含有10個整數(shù)的整形數(shù)組   
  3. delete[] p; //刪除這個數(shù)組   
  4. (2)、int *p;   
  5. p=new int (100);//動態(tài)分配一個整數(shù)并初始化  

二、使用inline內(nèi)連函數(shù)替代宏調(diào)用 

對于頻繁使用的函數(shù),C語言建議使用宏調(diào)用代替函數(shù)調(diào)用以加快代碼執(zhí)行,減少調(diào)用開銷。但是宏調(diào)用有許多的弊端,可能引起不期望的副作用。例如宏: 

#define abs(a) ((a)<0?(-a):(a)), 當(dāng)使用abs(I++)時,這個宏就會出錯。

所以在C++中應(yīng)該使用inline內(nèi)連函數(shù)替代宏調(diào)用,這樣即可達(dá)到宏調(diào)用的功能,又避免了宏調(diào)用的弊端。使用內(nèi)連函數(shù)只需把inline關(guān)鍵字放在函數(shù)返回類型的前面。例如:

  1. inline int Add(int a,int b);//聲明Add()為內(nèi)連函數(shù)  

這樣編譯器在遇到Add()函數(shù)時,不再進(jìn)行函數(shù)調(diào)用,而是直接嵌入函數(shù)代碼以加快程序的執(zhí)行。

三、使用函數(shù)重載 

在C語言中,兩個函數(shù)的名稱不能相同,否則會導(dǎo)致編譯錯誤。而在C++中,函數(shù)名相同而參數(shù)不同的兩個函數(shù)被解釋為重載。例如: 

  1. void PutHz(char *str); //在當(dāng)前位置輸出漢字   
  2. void PutHz(int x,int y,char *str); //在x,y處輸出漢字  

使用函數(shù)重載可以幫助程序員應(yīng)付更多的復(fù)雜性,避免了使用諸如intabs()、fabs()、dabs()等繁雜的函數(shù)名稱;同時在大型程序中,使函數(shù)名易于管理和使用,而不必絞盡腦汁地去處理函數(shù)名。

四、使用引用(reference)代替指針進(jìn)行參數(shù)傳遞

在C語言中,如果一個函數(shù)需要修改用作參數(shù)的變量值的時候 ,參數(shù)應(yīng)該聲明為指針類型。例如:

  1. void Add(int *a) {(*a)++;}  

但是對于復(fù)雜的程序,使用指針容易出錯,程序也難以讀懂。在C++中,對于上述情況 可以使用引用來代替指針,使程序更加清晰易懂。引用就是對變量取的一個別名,對引用進(jìn)行操作,就相當(dāng)于對原有變量進(jìn)行操作。,例如使用引用的函數(shù)定義為:

  1. void Add(int &a) (a++;); //a為一個整數(shù)的引用  

這個函數(shù)與使用指針的上一個函數(shù)的功能是一樣的,然而代碼卻更為簡潔和清晰易懂。

五、使用缺省參數(shù)

在C++中函數(shù)可以使用缺省參數(shù),例如:

  1. void PutHzxy(char *str,int x=-1,int y=-1)   
  2. if (x==-1) x=wherex();   
  3. if (y==-1) y=wherey();   
  4. moveto(x,y)   
  5. PutHz(str);}  

可以有兩種方式調(diào)用函數(shù)PutHzxy(),例如:

  1. PutHzxy("C++語言");//使用缺省參數(shù),在當(dāng)前位置輸出   
  2. PutHzxy("C++語言",10,10);//沒有使用缺省參數(shù)  

通常的情況下,一個函數(shù)應(yīng)該盡可能地具有更大的靈活性,使用缺省參數(shù)為程序員處理更大的復(fù)雜性和靈活性提供了有效的方法。所以在C++的代碼中都大量的使用了缺省參數(shù)。 需要說明的是,所有的缺省參數(shù)必須出現(xiàn)在不缺省參數(shù)的右邊。亦即,一旦開始定義取缺省數(shù)值的參數(shù),就不可再說明非缺省的參數(shù)。

例如:

  1. void PutHzxy(char *str,int x=-1,int y=-1); //正確   
  2. void PutHzxy(int x=-1,int y=-1,char *str);//錯誤  

六、使用“類”對數(shù)據(jù)進(jìn)行封狀 

C語言是模塊化的程序語言,通過函數(shù)的使用和文件的單獨(dú)編譯實(shí)現(xiàn)了一定的數(shù)據(jù)封裝功能。但C++通過使用“類”的強(qiáng)大功能,在數(shù)據(jù)封裝、繼承等很多的方面比C做得更好。通過使用“類”把數(shù)據(jù)和對數(shù)據(jù)的所有操作集合封裝在一起,建立了一個定義良好的接口,使程序員在使用一個類的時候可以只關(guān)心它的使用,而不必關(guān)心它的實(shí)現(xiàn)。 

由于函數(shù)也可一定程度上實(shí)現(xiàn)對數(shù)據(jù)的封裝,在編寫C++程序時何時使用函數(shù),何時使用類,對于C++的初學(xué)者難以把握。根據(jù)筆者的經(jīng)驗(yàn),對于函數(shù)和類的使用總結(jié)出以下的方法:
首先把程序需要完成的功能劃分為很多的基本子過程,一個子過程實(shí)現(xiàn)一種相對完整的功能。然后根據(jù)如下的規(guī)則進(jìn)行劃分:

(1)、如果有一些數(shù)據(jù)被兩個以上的子過程同時使用,應(yīng)該把這些數(shù)據(jù)和這些子過程使用“類”進(jìn)行封裝。 

(2)、如果一些數(shù)據(jù)只被一個子過程使用,應(yīng)把這些數(shù)據(jù)和這個子過程合成一個函數(shù)。這些數(shù)據(jù)聲明為這個函數(shù)的內(nèi)部臨時數(shù)據(jù)。 

(3)、如果一些數(shù)據(jù)被一個子過程在不同的時間里幾次使用,應(yīng)把這些數(shù)據(jù)和這個子過程合成一個函數(shù)。這些數(shù)據(jù)被定義為這個函數(shù)的內(nèi)部靜態(tài)數(shù)據(jù)。 

(4)、如果一個子過程的功能在以后可能被修改或擴(kuò)展,應(yīng)該把這些過程及其使用的數(shù)合成一個類,以便以后使用繼承的方法對其功能進(jìn)行修改和擴(kuò)充。 

(5)、當(dāng)(2)、(3)和(4)矛盾時,以(4)為準(zhǔn)。 

例如,對于在C++中使用鼠標(biāo)這一程序含有10多個子過程,諸如MouseOpen(),MouseHide()等等。如果是調(diào)用DOS的33H中斷來實(shí)現(xiàn),因?yàn)樵诔绦蛑懈鱾€子過程之間沒有共同使用的數(shù)據(jù),所以應(yīng)該把每個子過程定義為函數(shù)。

又如,如果定義了一個表示圖形的數(shù)據(jù)結(jié)構(gòu),對于這個圖形要進(jìn)行放大、移動、旋轉(zhuǎn)等子過程。因?yàn)檫@些子過程都要使用公共的圖形數(shù)據(jù),所以應(yīng)該把這些子過程和這些圖形數(shù)據(jù)定義為一個類。

七、使用模板和BIDS 

在Borland C++ 3.1中還引入模板(template)的功能,通過模板Borland C++ 3.1實(shí)現(xiàn)了功能強(qiáng)大的BIDS(Borland International Data Structures)。使用BIDS可以不需編程實(shí)現(xiàn)可以存儲任何數(shù)據(jù)類型的數(shù)組、鏈表、椎棧、隊(duì)列等數(shù)據(jù)結(jié)構(gòu)。下面的例子實(shí)現(xiàn)了一個存儲整形變量的堆棧:

  1. typedef BI_StackAsVector <int> intstack;   
  2. main()   
  3. {instack is;//定義一個整形變量的堆棧   
  4. for(int I=0;I<10;I++)   
  5. is.push(I);//10個數(shù)壓棧   
  6. for(I=0;I<10;I++)   
  7. cout<<is.ppop()<<end1; //10個數(shù)出棧   
  8. }  

通過語句is.push(),is.pop()可以對堆棧進(jìn)行操作。對BIDS的使用可以參照《Borland c++ 3.0程序員指南》。

本文以Borland C++ 3.1為背景,但是適用于大多的C++編譯器。

責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-05-30 15:29:32

C++

2010-01-26 17:11:13

C++編程

2011-07-10 15:49:34

C++

2010-01-12 10:40:22

C++程序員

2011-07-13 16:36:11

C++

2011-07-13 11:12:43

C++MFC

2010-01-11 10:28:51

C++編程

2011-07-10 15:36:54

C++

2021-12-06 17:05:43

C++日志工具

2011-07-15 00:47:13

C++多態(tài)

2011-07-14 17:45:06

CC++

2010-01-13 10:16:42

C++軟件

2010-01-12 15:24:48

C++語言

2011-07-13 18:24:18

C++

2010-01-22 16:35:41

C++開發(fā)

2010-01-12 17:33:06

C++

2010-01-13 15:51:44

C++編程語言

2010-02-06 13:52:39

C++ profile

2010-01-18 10:16:58

學(xué)習(xí)C++

2010-02-01 11:13:00

C++ Traits
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美 变态 另类 人妖| 国产亚洲欧美一区二区 | 能直接看的av| 97精品国产综合久久久动漫日韩 | 国产aaa精品| 欧美中日韩免费视频| 亚洲国产精品123| 一级黄色大片免费| 911精品美国片911久久久| 日韩欧美资源站| 成人毛片视频网站| 北条麻妃在线| 国产一区在线看| 91国产视频在线播放| 色噜噜噜噜噜噜| 亚洲免费一区三区| 91久久精品日日躁夜夜躁欧美| 在线一区日本视频| 天堂在线视频观看| 久久精品国产亚洲高清剧情介绍| 久久99国产综合精品女同| 国产呦小j女精品视频| 日本久久久久| 欧美日韩国产一区中文午夜| 一本一道久久a久久精品综合| 亚洲黄色一级大片| 免费在线观看不卡| 久久久久久久久久av| 山东少妇露脸刺激对白在线| 老司机凹凸av亚洲导航| 欧美精品少妇一区二区三区| 99re8这里只有精品| 久草在线免费福利资源| 国产福利一区在线| 91精品国产综合久久香蕉最新版 | 亚洲不卡免费视频| 国产精品久久久久久模特| 中文字幕精品av| 蜜桃色一区二区三区| www欧美xxxx| 国产精品蜜臀av| 久久99精品久久久久久秒播放器| 久久久久亚洲精品| 国产精品久久久久久久av| 波多野结衣在线一区二区| 欧美日韩午夜在线视频| 国产精品欧美激情在线观看| 久草免费在线色站| 亚洲国产成人午夜在线一区| 国产精品久久久久免费| 中文字幕日韩第一页| 亚洲激情偷拍| 久久av红桃一区二区小说| av无码av天天av天天爽| 成人在线精品| 69久久夜色精品国产69蝌蚪网| 成年人视频网站免费观看| 成年网站在线视频网站| 一区二区三区在线视频观看| 午夜精品一区二区在线观看 | 亚洲激情久久久| 日本xxxx免费| 999久久精品| 精品三级在线观看| gogo亚洲国模私拍人体| 国产精品一区免费在线| 在线不卡一区二区| 日本美女高潮视频| 性欧美超级视频| 色综合久久中文字幕综合网| 女人扒开屁股爽桶30分钟| 九色porny丨首页入口在线| 亚洲成人资源在线| 人人干视频在线| 不卡视频观看| 欧美日韩国产一区二区三区| 欧美日韩二三区| 蜜桃视频在线观看免费视频| 福利一区视频在线观看| 男人亚洲天堂网| 午夜无码国产理论在线| 精品视频一区二区三区在线观看| 久久蜜桃av一区二区天堂| 九9re精品视频在线观看re6| 精品99又大又爽又硬少妇毛片| 国产日韩精品久久久| 天堂av一区二区| av免费看在线| 亚洲一二三专区| 亚洲 自拍 另类小说综合图区| 中文字幕高清在线播放| 欧美在线视频日韩| 制服下的诱惑暮生| 欧美变态网站| 在线亚洲男人天堂| 国产十六处破外女视频| 亚洲乱亚洲高清| 国产成人精品日本亚洲专区61| 中文字幕一二区| 国产成人综合在线| 国产嫩草一区二区三区在线观看| 亚洲AV无码精品国产| 91美女精品福利| 在线观看日韩羞羞视频| 午夜激情视频在线| 一区二区三区四区精品在线视频| cao在线观看| av中文在线资源库| 91豆麻精品91久久久久久| 欧美午夜aaaaaa免费视频| 99精品国产九九国产精品| 日韩免费看网站| 亚洲欧美色图视频| 一区二区影院| 欧美亚洲伦理www| 国产精品一二三四五区| 成人av电影免费在线播放| 日韩av一区二区三区在线| 操你啦视频在线| 91国产丝袜在线播放| 99热这里只有精品2| 激情五月综合| 午夜精品蜜臀一区二区三区免费| 国产精品国产精品国产| 污污视频在线看| 91在线一区二区| 最新不卡av| 小视频免费在线观看| 在线不卡a资源高清| 天天插天天射天天干| 1024精品久久久久久久久| 情事1991在线| 国精品人妻无码一区二区三区喝尿 | 四虎4hu永久免费入口| 欧美片第一页| 精品国产第一区二区三区观看体验| 日韩一级片在线免费观看| 极品av少妇一区二区| 国产日韩欧美在线观看| 男男激情在线| 欧美日韩国产一中文字不卡 | 中文字幕精品三级久久久| 国产成人免费高清| 色撸撸在线观看| 国产一区二区色噜噜| 日韩精品在线第一页| 日本熟妇色xxxxx日本免费看| 国产一区二区三区四区在线观看| 日本不卡一区二区三区视频| 欧美日韩国产观看视频| 亚洲国产欧美久久| 久久综合色综合| 国产剧情一区二区| 宅男av一区二区三区| 日韩一区二区三免费高清在线观看| 亚洲午夜久久久影院| 欧美精品一二三四区| 91网站视频在线观看| 99热在线这里只有精品| 欧美成人午夜77777| 91精品国产九九九久久久亚洲| www日本视频| 亚洲午夜激情网站| 欧美激情www| 亚洲精品色午夜无码专区日韩| 一区视频在线| 国产精品免费在线| 大黄网站在线观看| 精品少妇一区二区三区视频免付费| 国产中文av在线| 久久99精品久久久| 欧美亚洲另类在线一区二区三区| 不卡福利视频| 亚洲国产97在线精品一区| 182在线观看视频| 狠狠久久亚洲欧美| 五月婷婷综合色| 亚洲综合伊人| 欧美日韩国产成人高清视频| 欧美在线 | 亚洲| 福利一区福利二区微拍刺激| 中文幕无线码中文字蜜桃| 久久久久欧美精品| 欧美一区二区三区在线免费观看| 黄视频免费在线看| 亚洲欧美日韩网| 91久久精品国产91性色69| 亚洲少妇30p| 好吊操视频这里只有精品| 日韩视频一区二区三区在线播放免费观看| 精品蜜桃一区二区三区| 国产亚洲一区二区手机在线观看| 中文字幕亚洲一区在线观看| av男人天堂网| 色综合久久综合网欧美综合网| 少妇太紧太爽又黄又硬又爽小说| 国产精品亚洲人在线观看| 精品少妇一区二区三区在线| 成人影视亚洲图片在线| 亚洲free性xxxx护士hd| 亚洲女同志freevdieo| 正在播放欧美视频| 亚洲精品国偷拍自产在线观看蜜桃| 五月婷婷另类国产| 又色又爽的视频| 成人av网址在线| 国产九九热视频| 亚洲精品男同| 吴梦梦av在线| 超碰一区二区三区| 欧美久久高跟鞋激| 欧美大陆一区二区| 韩国女主播一区二区| 欧美多人乱p欧美4p久久| 欧美18xxxxx| 日韩欧美激情四射| 在线免费黄色av| 国产精品久久网站| 在线黄色免费网站| 久久成人18免费观看| 欧美网站免费观看| 综合色一区二区| 日韩欧美亚洲精品| 成人春色在线观看免费网站| 国产精品人成电影| 日韩少妇与小伙激情| 涩爱av在线播放一区二区| 777奇米四色成人影色区| 国产欧美一区二区三区在线看蜜臂| 亚洲私人黄色宅男| 五月天综合视频| 成人精品一区二区三区四区 | 午夜伦全在线观看| 日韩av有码在线| www天堂在线| 91精品欧美综合在线观看最新| 91久久国产视频| 国产精品亲子伦对白| 日韩少妇一区二区| 国产九九视频一区二区三区| 水蜜桃色314在线观看| 日韩专区精品| 欧美人与物videos另类| 日韩高清一区| 国产在线a不卡| 国产一区一一区高清不卡| 欧美一级淫片丝袜脚交| 888av在线视频| 九九热精品视频国产| 免费黄网站在线| 日韩亚洲一区二区| av黄色在线观看| 中文字幕日韩专区| www.黄在线观看| 中文字幕国产精品| 成人动漫在线播放| 一区二区三区高清国产| 日本天堂在线| 国产亚洲精品va在线观看| 国产午夜视频在线观看| 亚洲色无码播放| 久久精品a一级国产免视看成人| 婷婷综合伊人| 国产欧美日韩亚洲| 国产精品久久久网站| julia一区二区中文久久94| 97久久综合区小说区图片区| dy888夜精品国产专区| 丁香五月缴情综合网| 黑人巨大精品欧美一区二区小视频 | 黄色小视频免费在线观看| 欧美丰满嫩嫩电影| 亚洲最新av网站| 欧美日韩国产综合一区二区| 一级做a爱片久久毛片| 69精品人人人人| 午夜久久久久久久久久| 欧美精品一区二区在线播放| 天堂网在线中文| 一区二区三区亚洲| 成年人视频免费在线观看| 久久视频这里只有精品| 欧美人与性动交α欧美精品济南到| 国模吧一区二区三区| av电影一区| 国产日韩精品电影| 97人人澡人人爽91综合色| 精品一区二区三区视频日产| 欧美色图在线播放| 伊人av成人| 精品69视频一区二区三区Q| 精品国产成人av在线免| 久久国内精品自在自线400部| 初高中福利视频网站| 99久久国产综合精品麻豆| 懂色av蜜桃av| 亚洲激情av在线| 日韩手机在线视频| 555www色欧美视频| 国产综合视频在线| 在线精品91av| www555久久| 国产欧美一区二区三区久久| 日韩精品一区二区三区中文字幕| 韩国成人一区| 99久久婷婷| 无罩大乳的熟妇正在播放| 久久精品123| 四季av一区二区三区| 国产高清无密码一区二区三区| 99热超碰在线| 欧美经典一区二区三区| 久久精品国产亚洲AV无码麻豆| 日本韩国一区二区| 色吧亚洲视频| 午夜免费欧美电影| 青青草原成人| 韩国在线视频一区| 奇米影视四色在线| 成人aaaa免费全部观看| 亚洲综合久久av一区二区三区| 欧美日韩国产综合新一区| 国产三级漂亮女教师| 一本大道亚洲视频| 91资源在线观看| 91久久国产精品| 成人国产精品一级毛片视频| 男女日批视频在线观看| 捆绑紧缚一区二区三区视频| 日本黄色网址大全| 国产精品福利一区二区三区| 老熟妇仑乱一区二区av| 亚洲精品一区二区三区精华液| 黄视频在线观看网站| 国产精品久久久久国产a级| 美腿丝袜亚洲图片| 免费cad大片在线观看| 久久精品国产77777蜜臀| fc2成人免费视频| 亚洲私人黄色宅男| 天天综合久久综合| 亚洲天堂第一页| 激情网站在线| 91久久精品一区二区别| 97视频精品| 久久久精品高清| 国产精品国产自产拍高清av王其| 黄色av一级片| 亚洲免费电影在线观看| 美女91在线看| 国内精品久久国产| 亚洲高清资源| 美女流白浆视频| 一区二区三区自拍| 国产黄色一级大片| 日韩在线视频中文字幕| 日韩免费在线电影| 手机成人av在线| 韩国v欧美v日本v亚洲v| 成人涩涩小片视频日本| 欧美日韩在线播放三区| 香蕉视频免费在线播放| 国产精品久久久久久久久久久久久 | 色综合久久88| 黑人一区二区三区| 久久免费视频2| 国产真实精品久久二三区| 国产美女久久久久久| 欧美伦理视频网站| 成人日日夜夜| 9a蜜桃久久久久久免费| 在线视频观看日韩| 黄色国产在线观看| 欧美午夜女人视频在线| 色婷婷综合久久久久中文字幕| 亚洲专区欧美专区| 91久久免费视频| 欧美色偷偷大香| 国产婷婷视频在线| 国产99视频精品免费视频36| 亚洲精品精选| 91视频免费在观看| 欧美一区二区视频在线观看2022 | 91一区二区| 最新中文字幕日本| 日韩欧美福利视频| 在线免费看av| 国产精品大全| 亚洲视频一二| 亚洲最大的黄色网| 欧美在线不卡一区| 久操视频在线| 国产精品视频导航| 综合久久久久| 性久久久久久久久久久| 91精品91久久久中77777| 日韩av地址| 国产精品日韩欧美| 黄色成人av网站| 国产aⅴ爽av久久久久|