Q&A

  • 서로 다른 구조체의 포인터 비교할수 있나요?
A라는 구조체가 있구 B라는 구조체가 있는데 함수의 파라메터를 포인터로
넘겨서 넘어온 포인터가 A라는 구조체의 포인터인지
B라는 구조체의 포인터인지 알수 있는 방법은 없나요?
1  COMMENTS
  • Profile
    이준해 2002.04.12 00:01

    구조체 ? 어떤 구조체를 말하나여 ?

    여러가지 방법으로 검사할 수 있습니다.
    그러나 델파이는 형에 엄격한 언어이므로
    Pointer 를 직접 사용하는 것은 별로 권장할 만한 일이 아닙니다.

    record 인 경우는 Typed Pointer 를 사용하십시오.
    예)
      TMyStrut = packed record
          a:..
      end;
      PMyStrut = ^TMyStruc;


    Class 로 정의된 Class 를 사용한다면 젤 좋은 방법은
    포인터가 아니구여. OOP 를 이용하세요
    TObject 의 모든 Subclass 는 TObject 로 선언된 변수에
    넣을 수 있다는 건 아시죠 ?

    꼭 필요하다면...

    procedure doSomething(p: Pointer);
    begin
        // nil check 하세여
       if TObject(p) is TMyClass then...

       else TObject(p) is TMyClass2 then...


    이런 식으로 사용할 순 있습니다.

    즐겁게 개발하시길..
    이준해