明智而審慎的使用private繼承

2022-04-03 06:47:24 字數 426 閱讀 2460

private繼承的兩條規則:

1、 編譯器不會將乙個derived class轉化為baseclass,但是卻可以顯示轉換。也就是,他們之間不是is-a的關係。

2、 從基類繼承的所有的成員和方法都將變為private屬性。也就是,它只繼承實現,不整合介面。

private繼承意味著「根據某物實現出」,它和復合衝突,盡可能的使用復合。

請記住:

1、 private繼承意味著「根據某物實現出」,它通常比復合的級別低。但是當derived class需要訪問baseclass的protected成員,或者他需要重新定義繼承而來的virtual函式時,這種設計才合理。否則,能夠使用復合,就盡量使用復合。

2、 和復合不同,private繼承可以找出empty base最優化。這對致力於「物件尺寸最小化」的程式庫開發者而言,可能重要。

明智而審慎的使用Private繼承

c 如何將public繼承視為is a。private繼承並意味著 is a 如果類之間的繼承關係是private。編譯器不會自動將乙個derived物件轉換成乙個base classes。這和public繼承的情況不同。由private base classes繼承而來的所有成員,在derived...

條款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...