Określanie poziomów funkcjonalności
W tym artykule opisano, jak dodać następujące poziomy funkcjonalności do swojej CObject-klasy:
Informacje o czasie wykonywania klasy
Wsparcie tworzenia dynamicznych
Obsługę serializacji
Ogólny opis CObject funkcji, zobacz artykuł wynikających z klasy CObject.
Aby dodać informacje o klasie wykonywania
Pochodzić od klasy CObject, zgodnie z opisem w wynikających z klasy CObject art.
Użycie DECLARE_DYNAMIC makro w deklaracji klasy, jak pokazano poniżej:
class CPerson : public CObject { DECLARE_DYNAMIC( CPerson ) // other declarations };
Użycie IMPLEMENT_DYNAMIC makro w pliku implementacji (.CPP) klasy.To makro przyjmuje jako argumenty nazwę klasy oraz swojej klasy bazowej, w następujący sposób:
IMPLEMENT_DYNAMIC( CPerson, CObject )
[!UWAGA]
Należy zawsze umieszczać IMPLEMENT_DYNAMIC w pliku implementacji (.CPP) dla swojej klasy.IMPLEMENT_DYNAMIC Makro powinny być oceniane tylko raz podczas kompilacji i dlatego nie można używać w pliku interfejsu (.H), która może być potencjalnie zawarte w więcej niż jeden plik.
Aby dodać obsługę tworzenia dynamicznych
Pochodzić od klasy CObject.
Użycie DECLARE_DYNCREATE makro w deklaracji klasy.
Zdefiniuj konstruktora bez argumentów (domyślnego konstruktora).
Użycie 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 do Serialize bezpośrednio, oznacza to, że nie chcesz serializacji obiektu za pomocą wskaźnika polimorficzna, należy pominąć kroki od 3 do 5.
Użycie DECLARE_SERIAL makro w deklaracji klasy.
Zdefiniuj konstruktora bez argumentów (domyślnego konstruktora).
Użycie IMPLEMENT_SERIAL makro w pliku implementacji klasy.
[!UWAGA]
"Wskaźnik polimorficzna" wskazuje na obiekt klasy (nazwać A) lub do obiektu klasy pochodne (powiedzmy B).Do serializacji za pomocą wskaźnika polimorficzna, ramach musi określić klasę wykonywania obiektu jest szeregowania (B), ponieważ może być obiekt klasy pochodzące z niektórych klasy podstawowej (A).
Aby uzyskać więcej informacji o sposobie włączania serializacji, gdy pochodzi od klasy CObject, zobacz artykuły pliki w bibliotece MFC i serializacji.