亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

C++中怎么靜態構造函數

發布時間:2021-07-28 14:04:16 來源:億速云 閱讀:347 作者:Leah 欄目:編程語言

C++中怎么靜態構造函數,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

函數是C++ 語言程序的主要組成部分,一個函數可以調用其他函數。在設計良好的程序中,每個函數都有特定的目的,也就是在創建***個實例或引用任何靜態成員之前,由.NET自動調用。

靜態構造函數是C++的一個新特性,其實好像很少用到。不過當我們想初始化一些靜態變量的時候就需要用到它了。這個構造函數是屬于類的,而不是屬于哪里實例的,就是說這個構造函數只會被執行一次。

以下是引用片段:

 class SimpleClass   {   // Static constructor   static SimpleClass()   {   //   }   }

在使用C++靜態構造函數的時候應該注意幾點:

1、靜態構造函數既沒有訪問修飾符,也沒有參數。因為是.NET調用的,所以像public和private等修飾符就沒有意義了。

2、是在創建***個類實例或任何靜態成員被引用時,.NET將自動調用靜態構造函數來初始化類,也就是說我們無法直接調用靜態構造函數,也就無法控制什么時候執行靜態構造函數了。

3、一個類只能有一個靜態構造函數。

4、無參數的構造函數可以與靜態構造函數共存。盡管參數列表相同,但一個屬于類,一個屬于實例,所以不會沖突。

5、最多只運行一次。

6、靜態構造函數不可以被繼承。

7、如果沒有寫C++靜態構造函數,而類中包含帶有初始值設定的靜態成員,那么編譯器會自動生成默認的C++靜態構造函數。

現在我們來看構造函數中冒號初始化和函數初始化的問題,類構造函數的作用是創建一個類的對象時,調用它來構造這個類對象的數據成員。一要給出此數據成員分配內存空間,二是要給函數數據成員初始化,構造數據成員是按數據成員在類中聲明的順序進行構造。

冒號初始化與函數體初始化的區別在于:

冒號初始化是給數據成員分配內存空間時就進行初始化,就是說分配一個數據成員只要冒號后有此數據成員的賦值表達式(此表達式必須是括號賦值表達式)。那么分配了內存空間后在進入函數體之前給數據成員賦值。

就是說初始化這個數據成員此時函數體還未執行。 所以在C++中就增加了這種機制,這是面向對象編程所必須的。不知道我講明白沒有。如不明白請查閱有關資料。在上面的程序中通不過編譯。

編譯系統會告訴你teacher這個類對象缺默認構造函數,因為在teach 類中沒有定義默認的構造函數。那么帶參數的構造函數怎么進行構造呢?通過我們前面提到的冒號賦值。在Student類中有兩個數據成員。

一個是常量數據成員,一個是引用數據成員,并且在構造函數中初始化了這兩個數據成員,但是這并不能通過編譯,因為常量初始化時必須賦值,它的值是不能再改變的,與常量一樣引用初始化也需要賦值,定義了引用后,它就和引用的目標維系在了一起,也是不能再被賦值的。

關于C++中怎么靜態構造函數問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

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

c++
AI

即墨市| 河曲县| 合水县| 石棉县| 普兰店市| 衡阳市| 茂名市| 尚志市| 霍城县| 阜阳市| 南丹县| 延寿县| 宁津县| 改则县| 容城县| 江陵县| 东方市| 鄂托克前旗| 乐昌市| 留坝县| 阿克陶县| 英吉沙县| 格尔木市| 托克逊县| 巴塘县| 南澳县| 陵川县| 太保市| 罗江县| 江陵县| 清涧县| 浦东新区| 平陆县| 盐池县| 宁德市| 搜索| 余江县| 巴楚县| 普兰店市| 鄢陵县| 岢岚县|