Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Design Patterns
Expertise: Beginner
Aug 29, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Inheritance in C++

In order to have better maintainability and optimum performance, how many levels of inheritance do you recommend ?

Performance is not affected by the depth of inheritance. The runtime system doesn't know whether a give object is inherited from one base class or a tree of five consecutive base classes, unless you're using dynamic_cast or some other explicit runtime type inquiry constructs. Therefore, the depth of inheritance is a function of design and maintainability. My advice is not to exceed five levels of inheritance at most because otherwise, readers can easily get lost in the class hierarchy and miss the differences among the levels of inheritance. Note also that from a maintenance point of view, too deep inheritance can cause problems when one of the base classes is modified and the modification propagates to the entire inheritance chain. If you have only few derived classes, adjusting them to cope with the modification isn't too difficult but when you have hundreds of classes that are ultimately derived from a common base that was changed, this is a serious maintenance problem.

DevX Pro
Thanks for your registration, follow us on our social networks to keep up-to-date