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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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
Thanks for your registration, follow us on our social networks to keep up-to-date