卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

構(gòu)造函數(shù)怎么初始化 為什么靜態(tài)函數(shù)初始化不能在構(gòu)造函數(shù)中進(jìn)行?

為什么靜態(tài)函數(shù)初始化不能在構(gòu)造函數(shù)中進(jìn)行?你說的是靜態(tài)成員變量,對(duì)吧?靜態(tài)成員變量應(yīng)該直接在類外部初始化(最好是在相應(yīng)的cpp文件中)。這是一個(gè)語言要求,因?yàn)殪o態(tài)成員變量由所有實(shí)例共享,所以它們不能在

為什么靜態(tài)函數(shù)初始化不能在構(gòu)造函數(shù)中進(jìn)行?

你說的是靜態(tài)成員變量,對(duì)吧?靜態(tài)成員變量應(yīng)該直接在類外部初始化(最好是在相應(yīng)的cpp文件中)。這是一個(gè)語言要求,因?yàn)殪o態(tài)成員變量由所有實(shí)例共享,所以它們不能在構(gòu)造函數(shù)中初始化。

C#的靜態(tài)構(gòu)造函數(shù)有些什么特點(diǎn)?

靜態(tài)構(gòu)造函數(shù)是第一個(gè)被調(diào)用的構(gòu)造函數(shù)。只要存在靜態(tài)訪問,就會(huì)首先調(diào)用靜態(tài)構(gòu)造函數(shù)。在調(diào)用靜態(tài)成員之前,不會(huì)調(diào)用其他非靜態(tài)構(gòu)造函數(shù)。所以靜態(tài)構(gòu)造函數(shù)通常用于初始化靜態(tài)成員,或者作為在單例模式下創(chuàng)建對(duì)象的唯一入口。例如:private static goodsmanagersuuInstancePublicStaticgoodsmanagerInstance{get{returnsuInstance}}staticGoodsManager(){suInstance=newgoodsmanager()}privategoodsmanager(){}在訪問類的靜態(tài)成員時(shí),系統(tǒng)將首先調(diào)用靜態(tài)構(gòu)造函數(shù)staticGoodsManager(),它將初始化類中的靜態(tài)變量建造師。

如何初始化一個(gè)類中的靜態(tài)成員變量?

如果我們不考慮父類,我們可以先進(jìn)行靜態(tài)初始化,然后進(jìn)行非靜態(tài)初始化。

靜態(tài)初始化包括靜態(tài)成員變量和靜態(tài)塊的初始化。實(shí)際上,靜態(tài)塊在編譯期間是集中的。

非靜態(tài)初始化包括非靜態(tài)成員變量初始化、非靜態(tài)塊和構(gòu)造方法,編譯后集中在構(gòu)造方法中。

如果沒有相互通話,那就非常簡單了。首先,靜態(tài)初始化。如果在靜態(tài)初始化過程中調(diào)用了后者呢?!你可以編寫一個(gè)代碼來測(cè)試它:

輸出:

你可以先看到它確實(shí)是靜態(tài)初始化,但是中間有對(duì)構(gòu)造方法的調(diào)用。

雖然編譯器不報(bào)告錯(cuò)誤,但此調(diào)用實(shí)際上是有風(fēng)險(xiǎn)的。

由于靜態(tài)成員變量(如果已設(shè)置)在初始化之前調(diào)用類構(gòu)造函數(shù)(假設(shè)存在依賴關(guān)系),因此該過程實(shí)際上是不可控制的。

看看這個(gè)例子:你能想象這種輸出嗎?

因此,如果必須在靜態(tài)初始化過程中調(diào)用此類的構(gòu)造函數(shù)。

一定要注意初始化順序,準(zhǔn)確到語句。