明智而審慎的使用Private繼承

2021-06-22 09:28:17 字數 696 閱讀 9708

c++如何將public繼承視為is-a。

private繼承並意味著 is-a

如果類之間的繼承關係是private。編譯器不會自動將乙個derived物件轉換成乙個base classes。

這和public繼承的情況不同。

由private base classes繼承而來的所有成員,在derived class中都會變成private屬性,總是他們在base classes中原本是protected或者public

private繼承意味著implementation in terms of(根據某物實現出)。如果你讓class d 以private 形式繼承class b,你的泳衣是為了採用

class b內已經具備的某些特徵,不是因為b物件和d物件存在有任何觀念上的關係。

private繼承只是一種實現技術,private繼承意味著只有實現部分被繼承,介面部分應略去。

private繼承在

i軟體設計層面上沒有意義,其意義只在於軟體實現層面上。

什麼時候使用復合什麼時候使用private 繼承呢?

答案是:盡可能使用繼承,必要時才使用privtae繼承。

何時才是必要呢?

主要是當protected成員和或virtual函式牽扯進來的時候。

private繼承可以造成empty base最優化。這對於致力於物件尺寸最小化的程式庫開發者而言,可能很重要。

明智而審慎的使用private繼承

private繼承的兩條規則 1 編譯器不會將乙個derived class轉化為baseclass,但是卻可以顯示轉換。也就是,他們之間不是is a的關係。2 從基類繼承的所有的成員和方法都將變為private屬性。也就是,它只繼承實現,不整合介面。private繼承意味著 根據某物實現出 它和復...

條款39 明智而審慎的使用private繼承

use private inheritance judiciously.如果classes之間的繼承關係是private,編譯器不會自動將乙個derived class物件轉換為乙個base class物件。這和public繼承的情況不同。由private base class繼承而來的所有成員,在...

C 明智而審慎地使用多重繼承

20180327 c 明智而審慎地使用多重繼承 當多重繼承 multiple inheritance,mi 運用到程式設計中時,程式有可能從乙個以上的基類繼承相同的名稱 如函式,typedef等 那會導致較多的歧義,eg class borrowableitem class company clas...