首頁  >  文章  >  後端開發  >  為什麼C沒有虛擬建構函數?

為什麼C沒有虛擬建構函數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-18 07:23:02857瀏覽

Why Doesn't C   Have a Virtual Constructor?

C 有虛擬建構子嗎?

與其他語言不同,C 沒有提供虛擬建構子。這就提出了一個問題:為什麼不呢?

造物主本人的答案

C 之父 Bjarne Stroustrup 給了深刻的解釋:

「虛擬呼叫是一種在給定部分資訊的情況下完成工作的機制。[...]要建立對象,您需要完整的資訊。[...]因此,對建構函式的呼叫不能是虛擬的。類。然而,物件的創建需要有關要實例化的類型的精確信息,這使得虛擬建構函數在概念上是不可能的。

替代方法

儘管沒有虛擬建構函數,C 提供了替代方法來實現類似的功能。 Stroustrup 的常見問題解答條目提供了此類解決方案的程式碼,示範如何在沒有虛擬建構函數的情況下完成所需的行為。

以上是為什麼C沒有虛擬建構函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn