CRuntimeClass nie klasy podstawowej.
Każda klasa pochodzi od CObject jest skojarzony z strukturą CRuntimeClass , który służy do uzyskiwania informacji na temat obiektu lub jego klasy podstawowej w czasie wykonywania. Możliwość określenia klasy obiektu w czasie wykonywania jest przydatne, gdy potrzebna jest dodatkowa typu sprawdzania argumentów funkcji lub gdy należy napisać kod celowej na podstawie klasy obiektu. Klasy Run-time nie jest obsługiwana bezpośrednio przez języka C++.
Struktura ma następujący członkowie:
LPCSTR m_lpszClassName
Ciąg zakończony zerem, zawierający nazwę klasy ASCII.
int m_nObjectSize
Rozmiar obiektu, w bajtach. Jeśli obiekt ma członków danych odnoszących się do alokacji pamięci, rozmiar tej pamięci nie jest włączone.
UINT m_wSchema
Numer schematu (–1 dla klasy nonserializable). Zobacz makra IMPLEMENT_SERIAL opis numer schematu.
CObject * (PASCAL * m_pfnCreateObject))
Wskaźnik funkcji konstruktora domyślnego, który tworzy obiekt klasy (ważny tylko wtedy, gdy klasa obsługuje dynamiczne tworzenie; w przeciwnym razie zwraca NULL).
CRuntimeClass * (PASCAL * m_pfn_GetBaseClass))
Jeżeli aplikacji to połączona dynamicznie do wersji AFXDLL MFC, wskaźnik do funkcji, która zwraca struktury CRuntimeClass klasy podstawowej.
CRuntimeClass * m_pBaseClass
Jeżeli aplikacji jest łączony statycznie do MFC, wskaźnika do struktury CRuntimeClass klasy podstawowej.
Tylko do fu&nkcji w Professional i Enterprise Editionsnbsp; Statyczne łączenie MFC jest obsługiwany tylko w Visual C++ Professional i Enterprise. Aby uzyskać więcej informacji, zobacz Visual C++ wersje.
CObject * CreateObject ().;
Klasy pochodzące od CObject może wspierać tworzenie dynamicznych, która jest możliwość tworzenia obiektu klasy określonej w czasie wykonywania. Dokument, widok i ramki klas, na przykład powinny wspierać tworzenie dynamicznych. Funkcja Członkowskie CreateObject może służyć do wykonania tej funkcji i tworzenie obiektów dla tych klas w czasie wykonywania. Aby uzyskać więcej informacji na temat tworzenia dynamicznych i członek CreateObject , zobacz CObject klasy tematy i CObject klasy: określenie poziomów funkcjonalności w Visual C++ Programmer's Guide.
BOOL IsDerivedFrom (const CRuntimeClass * pBaseClass) stała;
Zwraca wartość TRUE , jeśli klasa członek klasy wywołanie IsDerivedFrom pochodzi od klasy podstawowej, którego struktura CRuntimeClass jest podany jako parametr. IsDerivedFrom chodniki z klasy członka łańcucha klas pochodnych do góry i zwraca wartość FALSE , tylko wtedy, gdy nie znaleziono dla klasy podstawowej.
Uwaganbsp; Aby użyć strukturę CRuntimeClass , musi zawierać makra IMPLEME&NT_DYNAMIC, IMPLEMENT_DYNCREATElub IMPLEMENT_SERIAL w implementacji klasy, dla którego chcesz pobrać informacje o obiekcie run-time.
Aby uzyskać więcej informacji na temat używania CRuntimeClass, zobacz artykuł CObject klasy: dostęp do informacji klasy Run-Time w Visual C++ Programmer's Guide.
Zobacz teżnbsp;CObject::GetRuntimeClass, CObject::IsKindOf, RU&NTIME_CLASS, IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, IMPLEMENT_SERIAL