Difference between revisions of "Cpp Coding Standards/CLSDESIGN/Inherit"
From Apache OpenOffice Wiki
m (Linked LSP) |
|||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
If you employ public inheritance, use it to be reused and not to reuse another implementation. That is, inherit publicly from a baseclass, to allow client code to use your class instead of the base class. Make sure you don't violate the [[../../Virtual Classes/LSP |LSP]] doing so. | If you employ public inheritance, use it to be reused and not to reuse another implementation. That is, inherit publicly from a baseclass, to allow client code to use your class instead of the base class. Make sure you don't violate the [[../../Virtual Classes/LSP |LSP]] doing so. | ||
+ | |||
+ | |||
+ | [[Category:Coding Standards]] |
Latest revision as of 23:06, 19 July 2007
Avoid inheritance, because it induces the second highest coupling possible in c++ (second only to friendship). Instead, prefer composition by default.
If you employ public inheritance, use it to be reused and not to reuse another implementation. That is, inherit publicly from a baseclass, to allow client code to use your class instead of the base class. Make sure you don't violate the LSP doing so.