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

溫馨提示×

溫馨提示×

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

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

C++和Java 的缺省初始化介紹

發布時間:2021-06-22 15:12:44 來源:億速云 閱讀:226 作者:chen 欄目:編程語言

這篇文章主要介紹“C++和Java 的缺省初始化介紹”,在日常操作中,相信很多人在C++和Java 的缺省初始化介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++和Java 的缺省初始化介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

缺省初始化這是個基礎問題,但往往有些迷惑,尤其是當你同一個時間有時寫Java,有時寫C++ ,總結如下:

C++中基本類型只有作為全局變量才會進行,而對于類類型只要這個類具有一個無參構造函數則不管這個類的對象是局部變量還是全局變量,它都會進行缺省的初始化,甚至當一個對象通過缺省初始化機制進行創建時,這個對象的類類型數據成員也會根據它們自己的無參構造函數進行缺省的初始化。

但是若該類沒有無參構造函數,那么若這個類沒有任何構造函數,系統將會為這個類提供一個缺省的無參構造函數,理論上這個構造函數會講這個類的每個數據成員初始化為釋放類型的0,但是這因編譯器而異,我們***不要有依賴,系統提供的缺省無參構造函數完全有可能只進行內存分配而不進行初始化;

若還有其他構造函數,則系統不會提供無參構造函數,此時編譯器編譯不通過,對于這種情況在實際編程中我們可以對其他構造函數之一的所有參數進行缺省賦值來彌補。

系統不會提供無參構造函數的另外一個情況是:一個類包含了未初始化的const或引用成員,在這種情況下,我們別無選擇,職能顯式的進行初始化。注意,此時不能在類的內部進行初始化,其實在C++中未有static const類型的數據成員可以進行類內部初始化,除此以外數據成員都不能在類內部進行初始化,但Java并沒有這些限制。

對于這個問題,Java就有一個準則,那就是當一個變量被定義時(而不是只聲明不定義--當然,這種情況只有一個:變量在一個函數內部初次出現,且沒有提供初始值時),它總是缺省的初始化為適當類型的0(除非這個變量已經在類定義中有初始值了——再次注意這個在C++中是不可行的)。但和C++不同,Java的一個對象中類類型數據成員的引用不會使用無參構造函數進行缺省的初始化,而是簡單的置為null。

***,要注意的是Java不允許我們為一個函數的參數提供缺省值,因為我們再C++中通過給一個常規的構造函數參數提供缺省值來達到無參構造函數的方法在Java中無法使用。

對于數組,C++的缺省初始化規則如下:

基本類型的數組,若為全局作用域則被缺省初始化為適當類型的0,若為局部作用域則不會被缺省初始化。

類類型的數組,若作為數組元素的類沒有一個無參構造函數(此時定義了一個或多個其他的構造函數,系統因此也不會提供缺省無參構造函數了),則該數組無法聲明;若有一個程序員顯式提供的無參構造函數則會進行初始化;若有一個系統提供的隱式無參缺省初始化構造函數則在全局作用域上才會初始化。

而在Java中C++的數組初始化問題是不存在的,數組的各個元素都會自動進行初始化,類類型對象的數組元素將初始化為null。

到此,關于“C++和Java 的缺省初始化介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

望城县| 册亨县| 休宁县| 扬中市| 五指山市| 邢台市| 崇阳县| 剑阁县| 即墨市| 饶河县| 承德县| 泾阳县| 浦江县| 灵川县| 任丘市| 辽宁省| 淮阳县| 噶尔县| 静海县| 开鲁县| 洛宁县| 万源市| 台南县| 长兴县| 当阳市| 马公市| 麟游县| 宜州市| 武宁县| 奉化市| 新闻| 疏附县| 高尔夫| 万州区| 余干县| 嵊州市| 观塘区| 潜江市| 太谷县| 巩义市| 保定市|