다음을 통해 공유


기능 수준 지정

이 문서에서는 CObject 파생 클래스에 다음 수준의 기능을 추가하는 방법을 설명합니다.

  • 런타임 클래스 정보

  • 동적 만들기 지원

  • Serialization 지원

기능에 대한 CObject 일반적인 설명은 CObject에서 클래스 파생 문서를 참조하세요.

런타임 클래스 정보를 추가하려면

  1. CObject 문서에서 CObject클래스 파생 문서에 설명된 대로 클래스를 파생합니다.

  2. 다음과 같이 클래스 선언에서 DECLARE_DYNAMIC 매크로를 사용합니다.

    class CPerson : public CObject
    {
       DECLARE_DYNAMIC(CPerson)
    
       // other declarations
    };
    
  3. 구현 파일()에서 IMPLEMENT_DYNAMIC 매크로를 사용합니다. 클래스의 CPP)입니다. 이 매크로는 다음과 같이 클래스 이름과 기본 클래스의 이름을 인수로 사용합니다.

    IMPLEMENT_DYNAMIC(CPerson, CObject)
    

참고 항목

항상 구현 파일()에 IMPLEMENT_DYNAMIC 배치합니다. 클래스에 대한 CPP)입니다. IMPLEMENT_DYNAMIC 매크로는 컴파일 중에 한 번만 평가해야 하므로 인터페이스 파일()에서 사용하면 안 됩니다. H) 둘 이상의 파일에 포함될 수 있습니다.

동적 만들기 지원을 추가하려면

  1. 에서 CObject클래스를 파생합니다.

  2. 클래스 선언에서 DECLARE_DYNCREATE 매크로를 사용합니다.

  3. 인수가 없는 생성자(기본 생성자)를 정의합니다.

  4. 클래스 구현 파일에서 IMPLEMENT_DYNCREATE 매크로를 사용합니다.

serialization 지원을 추가하려면

  1. 에서 CObject클래스를 파생합니다.

  2. 멤버 함수를 재정의 Serialize 합니다.

    참고 항목

    직접 호출 Serialize 하는 경우 즉, 다형 포인터를 통해 개체를 직렬화하지 않고 3~5단계를 생략합니다.

  3. 클래스 선언에서 DECLARE_SERIAL 매크로를 사용합니다.

  4. 인수가 없는 생성자(기본 생성자)를 정의합니다.

  5. 클래스 구현 파일에서 IMPLEMENT_SERIAL 매크로를 사용합니다.

참고 항목

"다형 포인터"는 클래스의 개체(A라고 함) 또는 A(예: B)에서 파생된 클래스의 개체를 가리킵니다. 다형 포인터를 통해 직렬화하려면 프레임워크가 직렬화 중인 개체의 런타임 클래스(B)를 결정해야 합니다. 이는 일부 기본 클래스(A)에서 파생된 클래스의 개체일 수 있기 때문에 프레임워크에서 결정해야 합니다.

클래스CObject를 파생시킬 때 serialization을 사용하도록 설정하는 방법에 대한 자세한 내용은 MFC의 파일 및 Serialization 문서를 참조하세요.

참고 항목

CObject에서 클래스 파생시키기