static_cast可以用来将父类指针转换为子类指针。
#include<iostream>
#include<string>
using namespace std;
class Animal{
private:
string type;
public:
Animal(){
cout<<"new animal."<<endl;
}
};
class Dog :public Animal{
private:
string name;
public:
Dog(){
cout<<"new dog"<<endl;
}
};
int main(){
Animal ani;
Dog dg;
Animal* animal=&ani;
Dog* dog=&dg;
animal=&dg;
dog=static_cast<Dog*>(&ani);
return 0;
}