C++有哪些學(xué)習(xí)要點(diǎn)

本篇內(nèi)容介紹了“C++有哪些學(xué)習(xí)要點(diǎn)”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鹽山企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),鹽山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

16. 內(nèi)聯(lián)函數(shù)(inline)在實(shí)現(xiàn)上實(shí)際和宏類似,在內(nèi)聯(lián)函數(shù)出現(xiàn)的地方將函數(shù)展開來避免函數(shù)調(diào)用時的出棧、如棧,提高效率。但內(nèi)聯(lián)函數(shù)的代價(jià)是:代碼增大。inline函數(shù)適合成員函數(shù)和自由函數(shù)。在類中實(shí)現(xiàn)的函數(shù)自動為內(nèi)聯(lián)函數(shù)。inline必須定義到函數(shù)的實(shí)現(xiàn)上,例如:inline int PlusOne(int) 是無效的。友元函數(shù)在類的體內(nèi)被實(shí)現(xiàn)自動變?yōu)閮?nèi)聯(lián)函數(shù)。

17. #include

#define DEBUG(X) cout<<#X"="<

其中的#X表示X被當(dāng)作字符串輸出。

18. assert(0 != 0); 如果assert中的條件為假,則運(yùn)行期間回退出程序,且報(bào)告出錯代碼的行號。(#include)

19. 靜態(tài)對象在main結(jié)束或exit()被調(diào)用時才調(diào)用自身的析構(gòu)函數(shù)。這意味著,在對象的析構(gòu)函數(shù)中調(diào)用exit()是很危險(xiǎn)的,有可能進(jìn)入一個死循環(huán)中。調(diào)用abort()來退出函數(shù),靜態(tài)對象的析構(gòu)函數(shù)并不會被調(diào)用。我們可以用atexit()來指定跳出main或調(diào)用exit時要執(zhí)行的操作,用atexit注冊的函數(shù),可以在所有對象的析構(gòu)函數(shù)之前調(diào)用。

void exit_fn2(void)  {  printf("Exit function #2 called\n");  } //處理函數(shù)  atexit(exit_fn2);

20. 全局變量實(shí)際上用的是靜態(tài)存儲。靜態(tài)變量的構(gòu)造是在進(jìn)入main之前調(diào)用的,在main結(jié)束時調(diào)用它的析構(gòu)函數(shù)。變量的名字由小范圍(c++而言):

//*.cpp  int a; //靜態(tài)變量,但為 extern int a; 即它是全局的,外部可見的  static int b; //靜態(tài)變量,static 和extern相反,只在*.cpp中有效,對其他單元(文件)是不可見的。函數(shù)的定義和上面相同。  main()  { } 

類的靜態(tài)成員變量可以如下賦值:int X::s=23;(在*.cpp中,無論公私都可以)

21. 名字空間(namespace): 定義一個名字空間,然后使用unsing就可以將當(dāng)前的類型上下文轉(zhuǎn)換名字空間所定地的.

namespace math  {  enum sign{positive, negative};  class integer{  int i;  sign s;  public:  interger(int I=0): i(i) {&hellip;&hellip;&hellip;}  sign Sign() {&hellip;&hellip;&hellip;}  &hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;..  };//end class  interger A, B, C;  interger divide(interger, interger);  }//no ;  void q()  {  using namespace math;  interger A; //hides math::A  A.Sign(negative);  Math::A.Sign(positive);  }

22. 一般對于函數(shù)flaot f(int a, int b); 某些c++編譯器編譯后生成_f_int_int的名字,有些c編譯器則生成_f的名字。故在c++中鏈接c的庫函數(shù)時要用extern “C”告訴編譯器,按c的規(guī)則來編譯函數(shù)。類似的還有extern “C”{#include “myhead.h”},c++還支持extern “C++”{}.

23. 在函數(shù)調(diào)用時,傳引用也是將指針壓棧。

24. 構(gòu)造函數(shù)、析構(gòu)函數(shù)、賦值構(gòu)造函數(shù)、重載的=,四者的調(diào)用順序:(三種函數(shù)都已實(shí)現(xiàn))

a) X x; X a=x;

result:  X:construct  X:copy_struct

b) X x; X a; a=x;

Result:  X:construct  X:construct  X:copy_stru  operator =  X:destruct

如果沒有賦值構(gòu)造函數(shù)則結(jié)果:

X:construct  X:construct  operator =  X:destruct 

(如果直接X a=x;這不掉用一般的構(gòu)造函數(shù),調(diào)用復(fù)制構(gòu)造函數(shù))

指向類的成員函數(shù)的指針:設(shè) int X:: a(void){}

X x;  int (X:: *pf)(void)= &X::a;  (x.*pf)();

指向成員變量的指針: 設(shè)int i; 是X的成員變量

int X::*pm = &X::i;  X x;

“C++有哪些學(xué)習(xí)要點(diǎn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)站欄目:C++有哪些學(xué)習(xí)要點(diǎn)
文章來源:http://muchs.cn/article20/iepdjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、標(biāo)簽優(yōu)化、企業(yè)建站用戶體驗(yàn)、建站公司移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)