我假設我理解「受保護繼承」的含義。然而,在與這裏的一位民衆討論這個問題之後,我現在感到有點困惑。C++ - 有關「受保護繼承」的問題
這是我在C「保護繼承」 ++
的理解假設下面的類結構。
class Base {}
class SubClass : protected Base {}
1>如果一個子類被定義爲「protected BaseClass」,那麼這個子類不再是BaseClass的子類。相反,BaseClass只能作爲子類的實用工具。換句話說,如果您將SubClass *轉換爲Base *,SubClass &轉換爲Base &或SubClass to Base,則應該會出現錯誤。
2>人們使用受保護繼承的主要原因是期望的子類不是基類的子類(例如,Car不是引擎的子類)。而在同一時間,SubClass想要調用基類中定義的函數。
3>有一個很好的理由,有時候您更喜歡使用受保護的繼承,而不是將成員變量定義爲基礎對象。 (但我不記得在哪種情況下)。
如果我錯了,請糾正我的意見。
謝謝
[C++中私有,公共和受保護繼承之間的區別](http:// stackoverflow。COM /問題/ 860339 /差之間 - 私人 - 公共和保護的繼承,在-C) – 2010-11-05 20:05:42