儘管我已經看到final
和虛擬繼承方法實現了這一點,但我不明白爲什麼定義沒有構造函數,除了默認的私有構造函數,並不妨礙類被繼承。 (另外,基類的拷貝構造函數和拷貝賦值方法應該作爲預防措施聲明爲私有)。通過定義默認私有構造函數使類不可繼承
基本上我的意思是如果一個基類的構造函數是私有的並且沒有其他構造函數,那麼當派生類想要擴展這個基類:
派生類不能調用基類的默認的構造,因爲它定義的私人
派生類不能調用基類的任何非默認構造自沒有這樣的構造函數
所以這是一個編譯時錯誤,我找不到另一種方法來克服這個問題。
我確定我錯了某個地方;否則,我可以在互聯網上找到一個頁面,將其作爲讓一個類不可繼承的方法,但請向我解釋爲什麼我錯了。
你也可以使用你的方法。如果你深入挖掘,你可能會發現這兩種方法有何不同,以及何時應該使用一種方法。 –
我不確定你在這裏問什麼。你是否想知道*這是否可行,或者*爲什麼它可以工作,或者如何避開它? – meagar
@R Sahu請你解釋一下這個區別或者提供我可以閱讀的鏈接相關的關鍵詞嗎? – mualloc