91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么更好的進行C++構造函數

發布時間:2021-10-27 18:15:14 來源:億速云 閱讀:150 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關怎么更好的進行C++構造函數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

構造函數是開發過程中的一種特殊的方法,其主要用來在創建對象時的初始化對象,也就是對象成員變量賦初始值,在C++中進行C++構造函數時,無論什么時候,只要創建類或結構,就會調用它的構造函數

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

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

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

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

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

構造函數初始化表的使用規則:

如果類存在繼承關系,派生類必須在其初始化表里調用基類的構造函數

例如:

class F   {   public:   F(int x, int y); // 構造函數   private:   int m_x, m_y;   int m_i, m_j;   }

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

看完上述內容,你們對怎么更好的進行C++構造函數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

和林格尔县| 名山县| 崇明县| 平利县| 金坛市| 宁晋县| 固安县| 江华| 施秉县| 香格里拉县| 若羌县| 武功县| 榕江县| 罗山县| 视频| 竹溪县| 金秀| 云霄县| 赤水市| 乌拉特前旗| 仲巴县| 京山县| 治多县| 沁水县| 淮阳县| 阳东县| 隆昌县| 松潘县| 永仁县| 囊谦县| 西宁市| 和平区| 麦盖提县| 阿瓦提县| 阿勒泰市| 肇庆市| 双峰县| 宁海县| 阿克陶县| 天柱县| 清苑县|