日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
C++學(xué)習(xí)要點(diǎn)總結(jié)(下)

  上一篇文章我們已經(jīng)介紹了C++學(xué)習(xí)要點(diǎn)總結(jié)的前半部分C++學(xué)習(xí)要點(diǎn)總結(jié)(上),這篇我們繼續(xù)介紹下半部分:

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶(hù)提供了網(wǎng)站制作、成都網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),廣告投放平臺(tái),成都做網(wǎng)站選成都創(chuàng)新互聯(lián)公司,貼合企業(yè)需求,高性?xún)r(jià)比,滿(mǎn)足客戶(hù)不同層次的需求一站式服務(wù)歡迎致電。

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

  17. #include

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

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

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

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

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

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

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

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

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

 
 
 
  1. namespace math  
  2. {  
  3. enum sign{positive, negative};  
  4. class integer{  
  5. int i;  
  6. sign s;  
  7. public:  
  8. interger(int I=0): i(i) {………}  
  9. sign Sign() {………}  
  10. …………………..  
  11. };//end class  
  12. interger A, B, C;  
  13. interger divide(interger, interger);  
  14. }//no ;  
  15. void q()  
  16. {  
  17. using namespace math;  
  18. interger A; //hides math::A  
  19. A.Sign(negative);  
  20. Math::A.Sign(positive);  

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

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

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

  a) X x; X a=x;

 
 
 
  1. result:  
  2. X:construct  
  3. X:copy_struct   

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

 
 
 
  1. Result:  
  2. X:construct  
  3. X:construct  
  4. X:copy_stru  
  5. operator =  
  6. X:destruct 

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

 
 
 
  1. X:construct  
  2. X:construct  
  3. operator =  
  4. X:destruct   

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

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

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

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

 
 
 
  1. int X::*pm = &X::i;  
  2. X x; 

分享題目:C++學(xué)習(xí)要點(diǎn)總結(jié)(下)
本文地址:http://www.5511xx.com/article/dhcogep.html