Klasy wywodzące się z CObject
W tym artykule opisano minimalne kroki niezbędne do uzyskania klasy z CObject.Inne CObject klasy artykułów opisano kroki niezbędne dla zalet szczególnych CObject funkcje, takie jak serializacji i diagnostycznych obsługę debugowania.
W dyskusji z CObject, są często stosowane terminy "plik interfejsu" i "implementacji pliku".Plik interfejsu (często nazywane pliku nagłówka lub.Plik H) zawiera deklarację klasy i inne informacje potrzebne do użycia klasy.Plik implementacji (lub.Plik CPP) zawiera definicję klasy, jak również kod, który implementuje funkcje składowe klasy.Na przykład dla klasy o nazwie CPerson, zazwyczaj należy utworzyć plik interfejsu o nazwie osoba.H i wykonania pliku o nazwie osoba.CPP.Jednakże dla niektórych małych klas, które nie będą udostępniane między aplikacjami, czasami łatwiej jest łączenie interfejs i wdrożenia w jedną.Plik CPP.
Cztery poziomy funkcjonalności można wybierać podczas wynikające z klasy CObject:
Podstawowe funkcje: Obsługa klasy uruchomieniowej informacji lub serializacji zawierający zarządzania diagnostyki pamięci.
Podstawowe funkcje plus obsługa informacji klasy uruchomieniowej.
Podstawowe funkcje plus obsługa klasy uruchomieniowej informacji i tworzenie dynamicznych.
Podstawowe funkcje pomocy technicznej w czasie wykonywania oraz klasy informacji, tworzenia dynamicznych i serializacji.
Klasy przeznaczone do ponownego użycia (te, które później będzie służyć jako podstawowych klas) powinny obejmować co najmniej klasy uruchomieniowej obsługę i obsługę serializacji, jeśli jest przewidywana konieczność przyszłej serializacji.
Wybierz poziom funkcjonalności przy użyciu szczególnych deklaracji i wykonania makra w deklaracji i implementacji klasy pochodzić od CObject.
W poniższej tabeli przedstawiono zależność między makra, używane do obsługi serializacji i czasu informacji.
Używane do serializacji i informacje o wykonaniu makra
Makra używane |
CObject::IsKindOf |
CRuntimeClass:: Metoda CreateObject |
CArchive::operator >> CArchive::operator << |
---|---|---|---|
Podstawowe CObject funkcje |
Nr |
Nr |
Nr |
DECLARE_DYNAMIC |
Tak |
Nr |
Nr |
DECLARE_DYNCREATE |
Tak |
Tak |
Nr |
DECLARE_SERIAL |
Tak |
Tak |
Tak |
Aby korzystać z podstawowych funkcji CObject
Umożliwia normalnej składni języka C++ pochodzić od klasy CObject (lub z klasy pochodzącej od CObject).
W poniższym przykładzie pokazano najprostszym przypadku wyprowadzenie klasy z CObject:
class CSimple : public CObject { // add CSimple-specific members and functions... };
Zazwyczaj jednak warto zastępowania niektórych CObjectw funkcji obsługi charakterystykę nowej klasy.Na przykład, zazwyczaj można zastąpić Dump funkcji CObject przewidzieć wyjściowe debugowania w treści klasy.Szczegółowe informacje dotyczące sposobu zastąpienia Dump, zobacz artykuł Diagnostics: zawartość obiektu dumpingu.Można także zastąpić AssertValid funkcji CObject zapewnienie testowanie dostosowanej do sprawdzania spójności danych członków klasy obiektów.Opis sposobu zastąpienia AssertValid, zobacz MFC ASSERT_VALID i CObject::AssertValid.
Artykuł Określając poziomy funkcjonalności w tym artykule opisano sposób określania innych poziomów funkcjonalności, w tym informacje o klasie run-time, tworzenie dynamicznych obiektów i serializacji.