真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++中怎么靜態(tài)構(gòu)造函數(shù)

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

目前創(chuàng)新互聯(lián)已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、淄川網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

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

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

以下是引用片段:

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

在使用C++靜態(tài)構(gòu)造函數(shù)的時候應(yīng)該注意幾點:

1、靜態(tài)構(gòu)造函數(shù)既沒有訪問修飾符,也沒有參數(shù)。因為是.NET調(diào)用的,所以像public和private等修飾符就沒有意義了。

2、是在創(chuàng)建***個類實例或任何靜態(tài)成員被引用時,.NET將自動調(diào)用靜態(tài)構(gòu)造函數(shù)來初始化類,也就是說我們無法直接調(diào)用靜態(tài)構(gòu)造函數(shù),也就無法控制什么時候執(zhí)行靜態(tài)構(gòu)造函數(shù)了。

3、一個類只能有一個靜態(tài)構(gòu)造函數(shù)。

4、無參數(shù)的構(gòu)造函數(shù)可以與靜態(tài)構(gòu)造函數(shù)共存。盡管參數(shù)列表相同,但一個屬于類,一個屬于實例,所以不會沖突。

5、最多只運行一次。

6、靜態(tài)構(gòu)造函數(shù)不可以被繼承。

7、如果沒有寫C++靜態(tài)構(gòu)造函數(shù),而類中包含帶有初始值設(shè)定的靜態(tài)成員,那么編譯器會自動生成默認的C++靜態(tài)構(gòu)造函數(shù)。

現(xiàn)在我們來看構(gòu)造函數(shù)中冒號初始化和函數(shù)初始化的問題,類構(gòu)造函數(shù)的作用是創(chuàng)建一個類的對象時,調(diào)用它來構(gòu)造這個類對象的數(shù)據(jù)成員。一要給出此數(shù)據(jù)成員分配內(nèi)存空間,二是要給函數(shù)數(shù)據(jù)成員初始化,構(gòu)造數(shù)據(jù)成員是按數(shù)據(jù)成員在類中聲明的順序進行構(gòu)造。

冒號初始化與函數(shù)體初始化的區(qū)別在于:

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

就是說初始化這個數(shù)據(jù)成員此時函數(shù)體還未執(zhí)行。 所以在C++中就增加了這種機制,這是面向?qū)ο缶幊趟仨毜摹2恢牢抑v明白沒有。如不明白請查閱有關(guān)資料。在上面的程序中通不過編譯。

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

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

關(guān)于C++中怎么靜態(tài)構(gòu)造函數(shù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


分享標題:C++中怎么靜態(tài)構(gòu)造函數(shù)
網(wǎng)站URL:http://weahome.cn/article/ieispo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部