CoolInterview.com - World's Largest Collection of Interview Questions
Send Free SMS
 Interview Questions  
 Our Services  


INTERVIEW QUESTIONS LANGUAGES C++ DETAILS
Question :
What is RTTI?



Category C++ Interview Questions
Rating (3.5) By 2 users
Added on 7/19/2006
Views 3520
Rate it!
Answers:

RTTI stands for the Run Time Type Identification.

Operator dynamic_cast is used in RTTI.It cast a derieved class object into base class and vice versa at run time.

base b1;

derived d1;

if(b1 == dynamic_cast <base> (d1))

.....................

else

..................



RTTI stands for the Run Time Type Identification.

Generally Non Polymorphic Languages like C does not need RTTI. But in case of C++ it is needed because of Late binding associated decisions.

typeid is the operator used for identifying the type of object stored in the pointer.

Below example clears the point of used RTTI.

class Mammal {
public:
virtual bool lays_eggs() { return false; } // Mammal is polymorphic
// ...
};
class Cat: public Mammal {
public:
// ...
};
class Platypus: public Mammal {
public:
bool lays_eggs() { return true; }
// ...
};
class Dog: public Mammal {
public:
// ...
};

// A factory for objects derived from Mammal.
Mammal *factory()
{
switch(rand() % 3 ) {
case 0: return new Dog;
case 1: return new Cat;
case 2: return new Platypus;
}
return 0;
}


int main()
{
Mammal *ptr; // pointer to base class
int i;
int c=0, d=0, p=0;

// generate and count objects
for(i=0; i<10; i++) {
ptr = factory(); // generate an object

cout << "Object is " << typeid(*ptr).name();
cout << endl;


// count it
if(typeid(*ptr) == typeid(Dog)) d++;
if(typeid(*ptr) == typeid(Cat)) c++;
if(typeid(*ptr) == typeid(Platypus)) p++;
}

cout << endl;
cout << "Animals generated:
";
cout << " Dogs: " << d << endl;
cout << " Cats: " << c << endl;
cout << " Platypuses: " << p << endl;

return 0;
}



 Posted by: Kalyan Chakravarthy Yimani    

Contact Kalyan Chakravarthy Yimani  Contact Kalyan Chakravarthy Yimani


If you have the better answer, then send it to us. We will display your answer after the approval.
Name :*
Email Id :*
Answer :*
Verification Code Code Image - Please contact webmaster if you have problems seeing this image code Not readable? Load New Code
Process Verification  Enter the above shown code:*
Inform me about updated answers to this question

   
Related Questions
View Answer
What is a template?


View Answer
What do you mean by inline function?


View Answer
What is virtual class and friend class?
View Answer
What is function overloading and operator overloading?


View Answer
Difference between realloc() and free()?


View Answer
What do you mean by binding of data and functions?


View Answer
What is friend function?


View Answer
What is public, protected & private?


View Answer
What is polymorphism? Explain with an example?


View Answer
What is a class?


View Answer

Please Note: We keep on updating better answers to this site. Subscribe to our newsletter to get notified when better answer is posted.

Notify me when better answer is posted!
Email:

View ALL C++ Interview Questions

User Options
Sponsored Links


Copyright ©2003-2010 CoolInterview.com, All Rights Reserved.
Privacy Policy | Terms and Conditions
Page URL: http://www.coolinterview.com/interview/6157/default.asp?cachecommand=bypass


Download Yahoo Messenger | Placement Papers| FREE SMS | ASP .Net Tutorial | Web Hosting | Free SMS | Dedicated Servers | Joke of the Day

0.67