43 lines
		
	
	
		
			773 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			773 B
		
	
	
	
		
			C++
		
	
	
	
| /* 
 | |
|  * RTTI example from https://www.tenouk.com/cpluscodesnippet/moreonruntimetypeinfo.html
 | |
|  */
 | |
| 
 | |
| // run time type information
 | |
| 
 | |
| #include <iostream>
 | |
| #include <typeinfo>
 | |
| 
 | |
| using namespace std;
 | |
| 
 | |
| class Base
 | |
| {
 | |
| public:
 | |
|     virtual void funct(){}    
 | |
| };
 | |
| 
 | |
| class Derived:public Base{};
 | |
| 
 | |
| int main(void)
 | |
| {
 | |
|     Derived* Test1 = new Derived;
 | |
|     Base* Test2 = Test1;
 | |
|     
 | |
|     cout<<"The type name of Test1 is: ";
 | |
|     cout<<typeid(Test1).name()<<endl;
 | |
|     
 | |
|     cout<<"The type name of *Test1 is: ";
 | |
|     cout<<typeid(*Test1).name()<<endl;
 | |
|     
 | |
|     cout<<"The type name of Test2 is: ";
 | |
|     cout<<typeid(Test2).name()<<endl;
 | |
|     
 | |
|     cout<<"The type name of *Test2 is: ";
 | |
|     cout<<typeid(*Test2).name()<<endl;
 | |
|     
 | |
|     delete Test1;
 | |
|     
 | |
|     asm volatile ("ecall");
 | |
|     
 | |
|     return 0;    
 | |
| }
 |