업캐스팅(upcasting) :
Derived *d = new Derived;
Base *f = d;
다운캐스팅(downcasting)하는 방법
class Base{
int b = 1;
};
class Drived : public Base{
float f = 2;
}
int main(){
Base *x = new Drived y;
Drived *z = (Drived*) x; 명시적 형변환, 다운캐스팅o
std::cout << z->f << std::endl; // print 2;
int *f = (Drived *) x; 가능한데 이상하고 오류가 날 수 있음
=> 방지하기 위해 static_cast(Drived *)x; 적어도 가능한지를 판단해주셈.. but 오류가 날 수 있음
}