Udostępnij za pośrednictwem


Określając poziomy funkcjonalności

W tym artykule opisano, jak dodać następujące poziomy funkcjonalności do użytkownika CObject-klasy:

  • Informacje klasy Run-time

  • Obsługa dynamicznego tworzenia

  • Obsługa serializacji

Ogólny opis CObject funkcjonalności, zobacz artykuł wynikających z klasy z CObject.

Aby dodać informacje o klasie run-time

  1. Pochodzić od klasy CObject, jak opisano w wynikających z klasy z CObject art.

  2. Użyj DECLARE_DYNAMIC makro w deklaracji klasy, jak pokazano poniżej:

    class CPerson : public CObject 
    {
       DECLARE_DYNAMIC( CPerson )
    
       // other declarations
    };
    
  3. Użyj IMPLEMENT_DYNAMIC makro w pliku implementacji (.CPP) klasy.To makro przyjmuje jako argumenty Nazwa klasy i jej klasy podstawowej w następujący sposób:

    IMPLEMENT_DYNAMIC( CPerson, CObject )
    

[!UWAGA]

Zawsze IMPLEMENT_DYNAMIC w pliku implementacji (.CPP) dla swojej klasy.IMPLEMENT_DYNAMIC Makro powinny być oceniane tylko raz podczas kompilacji i dlatego nie powinien być używany w pliku interfejsu (.H), która może potencjalnie zawierać więcej niż jeden plik.

Aby dodać obsługę tworzenia dynamicznych

  1. Pochodzić od klasy CObject.

  2. Użyj DECLARE_DYNCREATE makro w deklaracji klasy.

  3. Definiowanie konstruktora bez argumentów (domyślnego konstruktora).

  4. Użyj IMPLEMENT_DYNCREATE makro w pliku implementacji klasy.

Aby dodać obsługę serializacji

  1. Pochodzić od klasy CObject.

  2. Zastąpić Serialize funkcji składowej.

    [!UWAGA]

    Jeśli zadzwonisz Serialize bezpośrednio, oznacza to, że nie chcesz serializować obiektu za pomocą wskaźnika polimorficzna, pomiń kroki od 3 do 5.

  3. Użyj DECLARE_SERIAL makro w deklaracji klasy.

  4. Definiowanie konstruktora bez argumentów (domyślnego konstruktora).

  5. Użyj IMPLEMENT_SERIAL makro w pliku implementacji klasy.

[!UWAGA]

"Wskaźnik polimorficzna" wskazuje na obiekt klasy (call it A) lub do obiektu w dowolnej klasy pochodne (say, B).Serializować za pomocą wskaźnika polimorficzna, ramy muszą określić klasę run-time obiektu jest szeregowania (B), ponieważ może być obiekt dowolnej klasy pochodzące z niektórych klasy podstawowej (A).

Więcej informacji na temat sposobu włączania serializacji, gdy pochodzi od klasy CObject, zobacz artykuły pliki w MFC i serializacji.

Zobacz też

Koncepcje

Klasy wywodzące się z CObject