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
Pochodzić od klasy CObject, jak opisano w wynikających z klasy z CObject art.
Użyj DECLARE_DYNAMIC makro w deklaracji klasy, jak pokazano poniżej:
class CPerson : public CObject { DECLARE_DYNAMIC( CPerson ) // other declarations };
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
Pochodzić od klasy CObject.
Użyj DECLARE_DYNCREATE makro w deklaracji klasy.
Definiowanie konstruktora bez argumentów (domyślnego konstruktora).
Użyj IMPLEMENT_DYNCREATE makro w pliku implementacji klasy.
Aby dodać obsługę serializacji
Pochodzić od klasy CObject.
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.
Użyj DECLARE_SERIAL makro w deklaracji klasy.
Definiowanie konstruktora bez argumentów (domyślnego konstruktora).
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.