Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ez a cikk az osztály CObjectből való származtatásához szükséges minimális lépéseket ismerteti. Más CObject osztálycikkek ismertetik azokat a lépéseket, amelyek bizonyos CObject funkciók, például a szerializálás és a diagnosztikai hibakeresés támogatásának kihasználásához szükségesek.
A vitafórumokban CObjectgyakran használják az "interfészfájl" és a "implementációs fájl" kifejezést. Az illesztőfájl (más néven fejlécfájl vagy . H fájl) tartalmazza az osztálydeklarációt és az osztály használatához szükséges egyéb információkat. A megvalósítási fájl (vagy . CPP-fájl) tartalmazza az osztálydefiníciót, valamint az osztálytagfüggvényeket megvalósító kódot. Például egy CPerson nevű osztály esetében általában egy PERSON.H nevű illesztőfájlt és egy PERSON.CPP nevű implementációs fájlt hozna létre. Egyes kis osztályok esetében azonban amelyek nem lesznek megosztva az alkalmazások között, néha egyszerűbb kombinálni az interfészt és az implementációt egyetlen .CPP fájlba.
Négy funkciószint közül választhat, ha egy osztályt a következőből CObjectszármaztat:
Alapszintű funkciók: Nem támogatottak a futásidejű osztályinformációk vagy a szerializálás, de a diagnosztikai memóriakezelést is tartalmazzák.
Alapszintű funkciók, valamint a futásidejű osztályinformációk támogatása.
Alapszintű funkciók, valamint a futásidejű osztályinformációk és a dinamikus létrehozás támogatása.
Alapszintű funkciók, valamint a futásidejű osztályinformációk, a dinamikus létrehozás és a szerializálás támogatása.
Az újrafelhasználásra tervezett osztályoknak (amelyek később alaposztályként fognak szolgálni) legalább a futásidejű osztálytámogatást és a szerializálás támogatását kell tartalmazniuk, ha a jövőben szerializálási igény várható.
A funkciók szintjét meghatározott deklarációs és implementációs makrók használatával választhatja ki a deklarációban és a származtatott CObjectosztályok implementálásában.
Az alábbi táblázat a szerializálás és a futásidejű információk támogatásához használt makrók közötti kapcsolatot mutatja be.
Szerializáláshoz és Run-Time információkhoz használt makrók
| Használt makró | CObject::IsKindOf | CRuntimeClass:: Objektum létrehozása |
CArchive::operátor>> CArchive::operátor<< |
|---|---|---|---|
Alapszintű CObject funkciók |
Nem | Nem | Nem |
DECLARE_DYNAMIC |
Igen | Nem | Nem |
DECLARE_DYNCREATE |
Igen | Igen | Nem |
DECLARE_SERIAL |
Igen | Igen | Igen |
Alapvető CObject-funkciók használata
Használja a normál C++ szintaxist, hogy az Ön osztályát
CObject-ből (vagy aCObject-ből származtatott osztályból) származtassa.Az alábbi példa a legegyszerűbb esetet, az osztály származtatását mutatja be a következőből
CObject:class CSimple : public CObject { // add CSimple-specific members and functions... };
Általában azonban érdemes lehet felülírni néhány CObject tagfüggvényt az új osztály jellemzőinek kezelése érdekében. Például előfordulhat, hogy felül szeretné bírálni a(z) Dump függvényt, hogy hibakeresési kimenetet biztosítson az osztálya tartalmához. A felülírással Dump kapcsolatos részletekért tekintse meg az Objektumkép testreszabása című cikket. Az osztályobjektumok adattagjainak konzisztenciájának ellenőrzéséhez érdemes lehet a AssertValidCObject funkcióját is felülírni, hogy testre szabott tesztelést nyújtson. A felülbírálás AssertValidmódjának leírását az MFC ASSERT_VALID és a CObject::AssertValid című témakörben talál.
A funkciók szintjeinek megadása című cikk leírja, hogyan adhatja meg a többi funkciószintet, beleértve a futásidejű osztály adatait, a dinamikus objektumok létrehozását és a szerializálást.