預設建構函式和析構函式的「=default」和「{}」之間的差異
在C 中,預設建構函式和析構函式是特殊的如果使用者未明確定義,則由編譯器自動產生的成員函式。然而,對於某些場景,有必要覆寫這些預設行為,這就提出了「=default」和「{}」是否提供相同功能的問題。
如果類別需要虛擬析構函數,但實作與編譯器產生的版本相同,可以使用「=default」語法。它確保編譯器產生虛擬析構函數而不需要明確定義。另一方面,使用空定義“virtual ~Widget() {}”以最少的輸入實現相同的效果。
與析構函式不同,「=default」的影響預設建構子的" 與"{}" 明顯不同。當使用「Widget() = default」時,編譯器會自動為「Widget」類別產生預設的建構函式。術語中的「平凡類型」。允許諸如memcpy之類的操作來實現高效初始化。 default”生成編譯器提供的預設建構函數,而「{}」建立使用者提供的預設建構函數,這可能會影響類別的簡單性。對類的瑣碎性的影響。
以上是C 中的預設建構子與析構函式:何時應使用「=default」與「{}」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!