偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何進(jìn)行C++環(huán)境編譯

開(kāi)發(fā) 后端
想要充分的掌握C++編程技術(shù),那么就要對(duì)C++中的結(jié)構(gòu)、語(yǔ)句、變量、函數(shù)、預(yù)處理指令、輸入和輸出等內(nèi)容進(jìn)行了解掌握。

C++環(huán)境的世界中有這樣兩個(gè)概念,向上類型轉(zhuǎn)換,向下類型轉(zhuǎn)換,分別描述的是子類向基類和基類向子類的強(qiáng)制類型轉(zhuǎn)換,因此可以在使用的過(guò)程當(dāng)中感受到趣味性和吸引力。

  1. void swap(int &a,int &b)  
  2. {  
  3.     //...  
  4. }   
  5. 2.請(qǐng)寫(xiě)出以下結(jié)構(gòu)或類的大小(sizeof的輸出值),并給出簡(jiǎn)要的解釋.  
  6. //A:  
  7. typedef struct  
  8. {  
  9.  char c1;  
  10.  char c2;  
  11.  int n;  
  12. } stru;  
  13. //B:  
  14. class ClassA  
  15. {  
  16.  public:  
  17.  int m_data1;  
  18.  int m_data2;  
  19.  void func1() { }  
  20.  void func2() { }  
  21.  virtual void vfunc1() { }  
  22.  virtual void vfunc2() { }  
  23. };  
  24. //C:  
  25. struct ClassB {  
  26.  void f();  
  27. };  
  28. B::f(){  

有興趣的看客可以先不看我下面的正確答案,試著作出自己的答案........

1.原題的考點(diǎn)就在于 Y() : b("b"), a("a"), X("base") {} 構(gòu)造函數(shù)Y()冒號(hào)后面的這一串東西,說(shuō)實(shí)話剛開(kāi)始做的時(shí)候我只記得和初始化有關(guān)系,正確的名稱其實(shí)是 "初始化參數(shù)列表".它的關(guān)鍵作用是在進(jìn)入構(gòu)造函數(shù)前完成對(duì)某些數(shù)據(jù)的初始化工作,在program1中的意思就是優(yōu)先于Y()構(gòu)造函數(shù)本身完成對(duì)象b和a的初始化,b("b"),a("a")就相當(dāng)與X b(X("b"));X a(X("a")) 也就是通過(guò)拷貝構(gòu)造函數(shù)完成。

2.可能有人要問(wèn) X("base")怎么這么用, 其實(shí)很簡(jiǎn)單,注意 Y 是X 的子類, 子類和父類構(gòu)造函數(shù)的關(guān)系我想人人皆知,即先調(diào)用父類構(gòu)造函數(shù),這里的X("base")就是指定在調(diào)用Y()構(gòu)造函數(shù)之前調(diào)用的父類X的構(gòu)造函數(shù)是C++環(huán)境而不是 X(), 這里有些繞口,可以試著把 X("base")換成X(), 就明確具體的意思了。

3.最后一個(gè)關(guān)鍵點(diǎn)就是program1的結(jié)果輸出順序問(wèn)題,我估計(jì)有些人的答案是 b , a ,base  或者 base , b ,a ,這里有兩個(gè)意思, 第一,main 函數(shù)里申明 y, 所以正確執(zhí)行順序應(yīng)該是 Y的父類X的構(gòu)造函數(shù)(注意Y初始化參數(shù)列表中指明了Y的父類X究竟應(yīng)該調(diào)用哪個(gè)構(gòu)造函數(shù))------>Y的私有成員變量的構(gòu)造函數(shù)(注意Y初始化參數(shù)列表中指明了私有成員變量究竟應(yīng)該調(diào)用哪個(gè)構(gòu)造函數(shù))------>Y的構(gòu)造函數(shù),對(duì)于program1 就是需要先調(diào)用X("base") ;

第二, 所有私有成員變量的構(gòu)造函數(shù)的調(diào)用順序與申明此變量的順序保持一致,而跟調(diào)用變量的順序無(wú)關(guān),對(duì)于program1,調(diào)用Y構(gòu)造函數(shù)調(diào)用私有變量順序?yàn)橄萣后a, 而申明私有變量順序?yàn)橄萢后b,所以后者是正確結(jié)果 ,綜上,構(gòu)造函數(shù)調(diào)用順序依次為 X("base"),X("a"),X("b"),Y()

4.弄明白以上三點(diǎn),我們?cè)賮?lái)看program2, 那就簡(jiǎn)單多了,program2沒(méi)有任何trap,規(guī)規(guī)矩矩按照先父類構(gòu)造,后私有變量構(gòu)造,再子類構(gòu)造的順序,輸出結(jié)果中的第一個(gè)XXX是Y的父類X的構(gòu)造, 第二和第三個(gè)C++環(huán)境分別是類Y中變量a,b(注意順序)的構(gòu)造,最后是Y構(gòu)造中的四輸出。

就是static加上去看似很方便,但你怎么知道就應(yīng)該分配256個(gè)字節(jié)呢?但是如果動(dòng)態(tài)分配就要用到堆,那釋放誰(shuí)來(lái)釋放呢?所以我個(gè)人認(rèn)為最好的辦法是這個(gè)函數(shù)加個(gè)str的參數(shù),由客戶程序員自己填。這樣可以把錯(cuò)誤控制住。但如果實(shí)在不愿意這樣,我認(rèn)為只能用智能指針了。關(guān)于智能指針就不展開(kāi)說(shuō)了,太多了。

【編輯推薦】

  1. 簡(jiǎn)介學(xué)習(xí)C++總結(jié)之談
  2. 對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語(yǔ)言真的還有市場(chǎng)價(jià)值?
  5. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來(lái)源: wewill.cn
相關(guān)推薦

2010-01-27 15:29:45

C++異常處理

2010-01-20 09:32:30

C++類

2010-01-20 10:49:29

Visual C++界

2010-02-02 13:04:03

C++頭文件

2010-01-15 19:05:42

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

2010-01-12 09:59:08

Visual C++

2014-09-19 10:46:36

LuaCC++

2010-01-27 10:45:21

C++單例模式

2010-01-15 17:18:57

C++源程序

2010-01-22 13:20:27

C++代碼

2010-02-05 17:16:05

C++構(gòu)造函數(shù)

2010-01-19 14:39:22

C++ Builder

2010-01-22 16:21:50

C++ Builder

2009-08-27 15:33:58

C# Cookie編程

2010-01-19 18:24:53

C++編譯環(huán)境

2010-01-28 10:33:10

C++開(kāi)發(fā)程序

2010-01-11 11:02:59

Visual C++

2010-01-15 17:31:18

C++Test

2010-01-12 16:42:59

C++編譯器

2021-12-01 15:52:56

安全開(kāi)發(fā)測(cè)試
點(diǎn)贊
收藏

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