成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何更好的進行C++構(gòu)造函數(shù)

開發(fā) 后端
函數(shù)是C++程序的主要組成部分,一個函數(shù)可以調(diào)用其他函數(shù)。在設(shè)計良好的程序中,每個函數(shù)都有特定的目的,下文對C++構(gòu)造函數(shù)進行講解。

構(gòu)造函數(shù)是開發(fā)過程中的一種特殊的方法,其主要用來在創(chuàng)建對象時的初始化對象,也就是對象成員變量賦初始值,在C++中進行C++構(gòu)造函數(shù)時,無論什么時候,只要創(chuàng)建類或結(jié)構(gòu),就會調(diào)用它的構(gòu)造函數(shù)

但是程序通過了編譯檢查并不表示錯誤已經(jīng)不存在了,在“錯誤”的大家庭里,“語法錯誤”的地位只能算是小弟弟。級別高的錯誤通常隱藏得很深,就象狡猾的罪犯,想逮住他可不容易。

根據(jù)經(jīng)驗,不少難以察覺的程序錯誤是由于變量沒有被正確初始化或清除造成的,而初始化和清除工作很容易被人遺忘。Stroustrup在設(shè)計C++語言時充分考慮了這個問題并很好地予以解決:把對象的初始化工作放在C++構(gòu)造函數(shù)中,把清除工作放在析構(gòu)函數(shù)中。當對象被創(chuàng)建時,構(gòu)造函數(shù)被自動執(zhí)行。當對象消亡時,析構(gòu)函數(shù)被自動執(zhí)行。這下就不用擔心忘了對象的初始化和清除工作。

構(gòu)造函數(shù)與析構(gòu)函數(shù)的名字不能隨便起,必須讓編譯器認得出才可以被自動執(zhí)行。Stroustrup的命名方法既簡單又合理:讓構(gòu)造函數(shù)、析構(gòu)函數(shù)與類同名,由于析構(gòu)函數(shù)的目的與構(gòu)造函數(shù)的相反,就加前綴‘~’以示區(qū)別。

除了名字外,構(gòu)造函數(shù)與析構(gòu)函數(shù)的另一個特別之處是沒有返回值類型,這與返回值類型為void的函數(shù)不同。C++構(gòu)造函數(shù)與析構(gòu)函數(shù)的使命非常明確,就象出生與死亡,光溜溜地來光溜溜地去。如果它們有返回值類型,那么編譯器將不知所措。為了防止節(jié)外生枝,干脆規(guī)定沒有返回值類型。(以上典故參考了文獻[Eekel, p55-p56])

C++構(gòu)造函數(shù)有個特殊的初始化方式叫“初始化表達式表”(簡稱初始化表)。初始化表位于函數(shù)參數(shù)表之后,卻在函數(shù)體 {} 之前。這說明該表里的初始化工作發(fā)生在函數(shù)體內(nèi)的任何代碼被執(zhí)行之前。

構(gòu)造函數(shù)初始化表的使用規(guī)則:

如果類存在繼承關(guān)系,派生類必須在其初始化表里調(diào)用基類的構(gòu)造函數(shù)

例如:

  1. class F  
  2.  
  3. {  
  4.  
  5. public:  
  6.  
  7. F(int x, int y); // 構(gòu)造函數(shù)  
  8.  
  9. private:  
  10.  
  11. int m_x, m_y;  
  12.  
  13. int m_i, m_j;  
  14.  

類的數(shù)據(jù)成員的初始化可以采用初始化表或函數(shù)體內(nèi)賦值兩種方式,這兩種方式的效率不完全相同,非內(nèi)部數(shù)據(jù)類型的成員對象應當采用***種方式初始化,以獲取更高的效率。

【編輯推薦】

  1. C與C++中標準輸入實現(xiàn)方式上的一點區(qū)別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設(shè)計的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2010-01-15 18:06:20

C++引用

2010-01-22 13:20:27

C++代碼

2010-01-22 18:06:24

C++代碼

2010-01-22 11:13:16

C++靜態(tài)

2010-02-05 17:16:05

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

2010-01-28 10:49:22

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

2010-01-25 14:00:27

C++類

2010-01-15 16:25:48

學習C++

2010-01-15 19:28:59

C++

2010-01-27 17:16:52

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

2010-01-20 17:48:07

C++ 函數(shù)重載

2010-01-13 18:44:03

C++編譯

2010-01-28 15:31:34

學習C++語言

2010-01-20 17:32:16

C++函數(shù)

2025-02-06 13:23:09

C++函數(shù)參數(shù)

2010-01-12 10:50:59

學習C++

2010-01-26 09:40:23

C++代碼

2023-11-28 11:51:01

C++函數(shù)

2010-01-20 18:06:06

C++虛基類

2010-01-08 17:13:46

Visual C++環(huán)
點贊
收藏

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

主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 亚洲精品乱码久久久久久蜜桃91 | 国产一级视频在线观看 | 国产一区二区三区久久久久久久久 | 国产精品一区在线 | www.青娱乐| 日韩色视频 | 国产日韩欧美一区 | 视频1区 | 欧美在线国产精品 | 国产综合久久 | 91久久国产综合久久91精品网站 | 亚洲在线一区 | 久草视频观看 | 欧美中文字幕一区二区三区亚洲 | 久久久国产一区二区三区 | 国产一区二区三区四区在线观看 | 国产一级视频免费播放 | 伊人二区 | 亚洲欧洲视频 | 青青草免费在线视频 | 在线观看亚洲精品 | 日本不卡一区二区三区 | 91人人看 | www.4虎影院| 在线2区 | 精品久久99 | 欧美a在线 | 一区二区在线 | 国产激情一区二区三区 | 日韩at | 免费观看一区二区三区毛片 | 久久精品视频一区二区三区 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 日韩中文在线视频 | 欧美一区二区三区久久精品 | 成人性生交大片免费看中文带字幕 | 91久久视频 | 中文字幕av高清 | 欧美日韩亚 | 日韩精品免费一区二区在线观看 |