Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Advanced
Jul 10, 1998

A general base class - is it such a good idea?

In many frameworks and software projects, all classes are enforced to be descendants of one common generic class, usually named Object. This design policy prevails in other OO language such as Smalltalk and Java, whose classes are all derived from class Object implicitly. However, imitating that in C++ is superfluous. It even incurs many compromises and potential bugs. For example, such policy results in artificial kinship relations among classes which have absolutely nothing in common - do classes like Window, Transmitter and Exception share any commonality? Probably not. If it's genericity you're after, that is to say, you need an algorithm/container/function which works for all classes, you may find out that templates will serve you better. Moreover, such design policy also forces you to refrain from multiple inheritance entirely, since any class derived simultaneously from two or more base classes faces the Deadly Derivation Diamond problem: it embeds more than one Object member. Finally, the Object class usually serves as a means of implementing exception handling and RTTI, both of which are now integral parts of the C++ standard anyway.
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap