我可以理解,可能有理由聲明一個實現的(而不是純粹的)虛擬函數private或protected。 Afaik,如果你聲明一個被實現的虛擬方法是受保護的,你的子類可以調用基類的方法(並且沒有其他人可以)。如果你聲明它是私有的,那麼只有基類可以調用虛擬方法的默認實現。私人和受保護的純虛函數之間是否有區別?
但是,對於純虛擬,沒有基礎實現......因此,它在功能上等同於將純虛擬聲明爲私有還是保護?受保護的純虛擬沒有意義,因爲您無法調用基類的相應方法。是否有任何情況下受保護的純虛擬有意義?
這裏有幾個類似的話題,但我找不到任何簡明回答我的問題的東西。
你可以爲接口實現'friend'。 – Matthew 2012-03-19 02:00:32
純虛方法可以具有主體,並且可以像base :: foo()那樣顯式調用它。 – iammilind 2012-03-19 02:02:13