|
컴파일러에게는 T라는 것이 무엇인지 정확히 알아야 컴파일에 성공할 것입니다.
이 문장 ==> dynamic_cast<T>(Owner)->MyValue
만 놓고 보면 T가 무엇인지 컴파일러는 알 수 없을 것 같습니다.
즉 T라는 것은 컴파일 타임에 정해진 것이어야 한다는 것이죠.
(빌더 도움말에는 T must be a pointer or a reference to a defined class type or void*.라고 적혀 있습니다.)
그렇다면 원하시는 런타임에 T를 결정하는 방식은 불가능 하다는 것이 될 것 같습니다.
궁금이 님이 쓰신 글 :
: dynamic_cast<TmyForm1 *>(Owner);
: dynamic_cast<TmyForm2 *>(Owner);
: 를 선택적으로 사용하고 싶습니다.
: if(bool == true)
: Label1 = dynamic_cast<TmyForm1 *>(Owner)->MyValue;
: else
: Label1 = dynamic_cast<TmyForm2 *>(Owner)->MyValue;
:
: 이렇게 하지 않고...
: dynamic_cast<T>(prt)에서 저 T를 변경시킬순 없을 까요?
: 즉,
: if(type1)
: T = TmyForm1*;
: else
: T = TmyForm2*;
:
: Label1 = dynamic_cast<T>(Owner)->MyValue;
:
: 이런 식으로 가능한지 불가능한지를 알고 싶습니다.
: 도움을 요청합니다.
|