原則25:把建構函式和非成員函式虛擬化

weixin_33912246發表於2017-07-18

虛擬建構函式當然不是把建構函式虛擬化,因為建構函式根本不能被初始化。那麼虛擬建構函式到底是什麼意思呢?
虛擬建構函式的目的是根據某些輸入自動構造物件。
所以但凡是能夠根據輸入源建立物件的非建構函式都可以稱之為虛擬建構函式。
虛擬拷貝建構函式存在的目的是返回一個新拷貝的指標,而這個指標又可以被集中儲存和管理。
它是通過呼叫該類的真正拷貝建構函式實現的。
虛擬化非成員函式就是相當於虛擬函式的非成員函式,因為真正的非成員函式無法被虛擬化。它的實現很簡單,你可以在類中定義虛擬函式,然後在類外定義非成員函式然後呼叫類中的虛擬函式,該函式的引數是類物件和虛擬函式引數。

相關文章