C++ Builder XE4 > Assign() > Error: TShape를 TShape에 할당할 수 없습니다. > override하고 사용?

운영 환경
C++ Builder XE4

시도한 것


  • TShape가 2개 있다
  • 한쪽 TShape에서 다른 쪽으로 속성 복사
  • Assign()이라는 것이 있는 것 같다

  • TPersistent.Assign Method
  • > Copies the contents of another, similar object.



  • Assign()을 사용해 보자.

    구현



    Unit1.cpp
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        Shape2->Assign(Shape1);
    }
    //---------------------------------------------------------------------------
    

    작동시켜 보았습니다.





    관련 정보



  • [Delphi]Assign 사용하고 있습니까(1)
  • @ K2의 잡기


  • 정보 감사입니다.

    VCL의 TPersistent 클래스에는 Assign이라는 메소드가 public으로 선언되어 있다. 이 내용을 그대로 사용하면 예외가 오를 뿐이다. 따라서 TPersistent 상속 클래스를 만든 경우에는 Assign*1을 override하고 재정의한다.

    위의 오류는 override로 고칠지 여부.

    좋은 웹페이지 즐겨찾기