內建型別有預設建構子嗎?
在 C 領域,原始型別通常被認為缺少建構子。然而,TC PL 的一段話卻另有說法,指出即使是內建型別也有預設的建構子。為了澄清這個明顯的矛盾,我們深入研究了值初始化和建構函數語法的細微差別。
值初始化:分散注意力
閱讀本文後,很明顯, int() 由於值初始化而產生 0,而不是因為預設建構函式呼叫。這導致人們相信原始類型不具有構造函數。
類似建構子的語法:用詞不當
此外,TC PL 文字使用「類似建構子」語法,例如int(),用於初始化內建類型。但是,此語法實際上並不會呼叫建構函數。相反,它執行值初始化。
Bjarne 的澄清:概念區別
在向文本作者尋求澄清後,Bjarne Stroustrup 解釋說該文本指的是概念區別。內建型別被認為擁有建構函數,儘管沒有正式遵守建構函數的標準定義。
結論:一種獨特的方法
在 C 中,原始類型的行為如下如果他們有構造函數,即使他們在技術上沒有。這允許使用類似構造函數的語法進行方便的初始化。了解內建類型的這種獨特特徵非常重要,以避免混淆並確保正確理解 C 編程。
以上是C 內建型別其實有預設建構函式嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!