內建型別有預設建構子嗎?
閱讀了一篇建議 int() 由於預設值而產生 0 的文章後出現了這個問題構造函數,導致人們相信原始類型本質上缺乏構造函數。然而,「TC PL」第 10.4.2 節另有暗示,聲稱內建類型擁有預設建構子。
Bjarne Stroustrup 的回應
當詢問明顯的差異時,Bjarne Stroustrup 澄清說內建類型沒有實際的構造函數呼叫。相反,它們的行為就像它們一樣,並且類似構造函數的符號由編譯器解釋。
技術答案
嚴格來說,不行。內建類型不具有預設建構函數。
功能注意事項
儘管缺少實際的建構函數,但初始化內建類型的語法與建構函數呼叫非常相似。初始化時使用大括號 ({}) 可以對整數 (int{0}) 進行零初始化,並從括號內的表達式 (int a{b}) 進行複製。
結論
雖然內建型別沒有預設建構函數,但它們的初始化語法和行為模擬它們的存在。它們似乎擁有預設構造函數和複製構造函數,允許初始化和賦值。這種偽構造函數機制簡化了初始化並提高了程式碼的可讀性。然而,認識到這些類型缺乏真正的構造函數是至關重要的。
以上是C 中的內建類型其實有預設建構函式嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!