class Animal {
public:
string name;
};
class Bird : Animal {
public:
Wing wing;
};
int main()
{
Animal a = new Bird();
// a의 wing에 접근
...
return 0;
}
위 예시가 잇을떄
a 의 wing에 접근 할수있음? 가능하다면 어떻게 함?
class Animal {
public:
string name;
};
class Bird : Animal {
public:
Wing wing;
};
int main()
{
Animal a = new Bird();
// a의 wing에 접근
...
return 0;
}
위 예시가 잇을떄
a 의 wing에 접근 할수있음? 가능하다면 어떻게 함?
((Bird)a).wing - dc App
ㄳ 혹시 이런식으로 캐스팅하면 어떤 문제점이 잇음?
캐스팅이 된다는 보장도 없고 오버헤드도있음 - dc App
ㅇㅎ ㄳㄳ
wing 접근하고 싶으면 저렇게 하지말고 Bird bird = new Bird(); 로 일단 만들고, 그 다음 Animal로 형변환해(만약 해야될 이유가 있다면)
그리고 개인적으로 내부 멤버 변수를 밖에서 접근하는 코드는 구린 코드라고 생각함.
저거 컴파일 에러 남. Animal * 되어야 하고 public 으로 상속해야 함
dynamic_cast - dc App
왠만하면 가상 함수로 오버라이딩 해라 - dc App