Login | Register   
LinkedIn
Google+
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
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Feb 2, 1998

Virtual Functions and Polymorphism

Question:
Say you have three classes, a base (called Base), and two classes derived from it (called Derv1 and Derv2). Base has a pure virtual function (called TypeGet()) that is defined in both Derv1 and Derv2. I then attempt to use this code:

Derv2 my_derv2;
Derv1* d1pointer = (Derv1*)&my_derv2;
d1pointer->TypeGet();
Is this behavior defined and legitimate? moral?

Answer:
In general, you should not type-cast one pointer type to another unless the data pointed to matches. Otherwise, you will be asking for trouble.

DevX Pro
 
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