작성
·
460
·
수정됨
0
뒤에 부분을 다 안보고 질문드렸더니 조금 애매해졌네요.
상식적인 캐스팅이 아니라
애초에 부모가 어떤 자식의 타입이었는지 확실할때
쓰는 것이라고 하는게 맞겠네요.
강의에서 나오는 것처럼요
Player* p = new Knight();
Knight* k1 = static_cast<Knight*>(p);
말이 안되는건 아니니까 그때 쓴다 이런 뜻이었네요.
역시 한국말은 끝까지 들어봐야 되는거 같네요.. ㅎㅎ
답변은 안해주셔도 되겠습니다.
감사합니다.
=================================
일단 주말에 질문을 드려서 죄송합니다.
답변은 월요일에 해주시면 될 것 같습니다!
3분 13초부터 나오는 상속 관계끼리의 타입변환에
대해서 주석으로 이야기 해주시는 부분인데요
Player*->Knight* (다운캐스팅) 이게상식적인 캐스팅
이라고 하셨는데 아무리 들어도 뭔가 잘못된게 아닌가
싶어서요. 반대로 이야기 하신것 아닌가요?..
자식은 부모를 포함하고 있으니까 애초에 부모로도
캐스팅 될 수 있는데 부모가 자식으로 캐스팅 되는 것은 타입변환 강의에서도 위험하다고 하셨던것 같은데
혹시 player가 자식인가 싶어서 뒤에 내용도 봤는데 Knight가 자식이더군요.
제가 짐작하건데 반대로 이야기 하신게 아닌가 싶은데
맞나요??
업캐스팅이 상식적인것이고 다운캐스팅은 위험한것 아닌가요?
그래서 위험하니까 다운캐스팅 시에는 명시적으로 했던 것이구요.
인터넷에서 찾아봐도 다운캐스팅은 업캐스팅에 비해 안전하지 않다고 하는데 다운캐스팅이 상식적인 캐스팅이라는게 이해가 안되어서 질문드려 봅니다.
같은 질문이 있나 찾아봐도 없어 이렇게 질문글 남깁니다.