#include <iostream>
#include <typeinfo>
using namespace std;
class Test
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
public:
virtual ~Test()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
}
virtual void Out()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
cout<<typeid(*this).name()<<endl;
}
Test()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
cout<<typeid(*this).name()<<endl;
}
};
class FromTest : public Test
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
public:
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) FromTest() {}
};
void main()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
// void * v=new Test;
// Test * t=static_cast<Test *>(v);
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) /**///// Test * t=(Test *)(v);
// cout<<typeid(t).name()<<endl;
// t->Out();
// int i;
// cout<<typeid(i).name()<<endl;
FromTest ft;
Test * t;//=new FromTest;
Test l;
l.Out();
t=&ft;
cout<<typeid(*t).name()<<endl;
}
![](/Images/OutliningIndicators/None.gif)
|