|
dynamic_cast의 용도는 일반적인 Cast 연산자와 같습니다.
단지 차이가 있다면....
VCL 클래스 전용이라는 것과,
캐스팅에 실패했을 경우 NULL이 리턴된다는 점 등입니다.
물론 속도는 이전 Cast 연산자에 비해
훨씬 늦지만,
좀 더 안전하게 쓸 수가 있습니다.
김진수 님이 쓰신 글 :
: 안녕하세요....
: 그림 파일 jpeg 를 읽어 오는 간단한 예제를 공부하고 잇습니다..
: 다음은 오픈하는 부분입니다..
:
: void __fastcall TForm1::OpenFile(const AnsiString Filename)
: {
: try { Image1->Picture->LoadFromFile(Filename);
: }
: catch ( 주절)
: {
: 주절
: }
:
: SetJPEGOption(this);
: }
:
: void __fastcall TForm1::SetJPEGOption(TObject *Sender)
: {
: TJPEGImage *jpegimage = dynamic_cast < TJPEGImage *>(Image1->Picture->Graphic);
: if(jpegimage){
: 주러리~~
: ..
: .
: }
: }
:
: 입니다. 여기서 TJPEGImage *jpegimage = dynamic_cast < TJPEGImage *>(Image1->Picture->Graphic);
: 이부분이 궁금합니다... 역활은 읽은 이미지가 jpeg 인지 아니면 다름 그림인지 구분하는 것 같은데
: 정확히 이해를 하지 못하겟네요.... 무엇을 받아서 구분하는 건지 설명을 부탁드립니다...
:
: 그럼 좋은 하루 되세요
|