CRuntimeClassไม่มีคลาสพื้นฐาน?
แต่ละชั้นที่ได้รับมาจากCObjectเกี่ยวข้องกับโครงสร้างแบบCRuntimeClassที่คุณสามารถใช้เพื่อขอรับข้อมูลเกี่ยวกับวัตถุหรือคลาสพื้นฐานของเวลาเรียกใช้งาน ความสามารถในการกำหนดคลาสของวัตถุเวลาเรียกใช้งานจะเป็นประโยชน์ เมื่อจำเป็นชนิดพิเศษที่การตรวจสอบของอาร์กิวเมนต์ของฟังก์ชัน หรือ เมื่อคุณต้องเขียนโค้ดพิเศษวัตถุประสงค์ตามคลาสของวัตถุ ไม่มีสนับสนุนขณะเรียกใช้คลาสข้อมูลได้โดยตรง ด้วยภาษา c ++?
โครงสร้างมีสมาชิกต่อไป:
LPCSTR m_lpszClassName
สิ้นสุดด้วย null สตประกอบด้วยชื่อคลาส ASCII?
int m_nObjectSize
ขนาดของวัตถุ ไบต์ ถ้าวัตถุมีข้อมูลสมาชิกที่ให้ชี้ไปที่หน่วยความจำที่จัดสรรไว้ ขนาดของหน่วยความจำไม่ถูกรวมไว้?
UINT m_wSchema
หมายเลขของ schema ( 1 เรียน nonserializable) ดูแมโคIMPLEMENT_SERIALสำหรับคำอธิบายของหมายเลขเค้าร่าง?
(PASCAL * m_pfnCreateObject) * CObject ()
ฟังก์ชันตัวชี้ไปที่กำหนดเป็นค่าเริ่มต้นที่สร้างวัตถุของระดับชั้นของคุณ(ส่งกลับถูกต้องเท่านั้นถ้าคลาสนับสนุนการสร้างแบบไดนามิก มิฉะนั้น ค่าNULL)?
(PASCAL * m_pfn_GetBaseClass) * CRuntimeClass ()
ตัวชี้ไปยังฟังก์ชันที่ส่งกลับCRuntimeClassโครงสร้างของคลาสพื้นฐานถ้าโปรแกรมประยุกต์ของคุณถูกเชื่อมโยงกับรุ่น AFXDLL ของ MFC แบบไดนามิก?
CRuntimeClass * m_pBaseClass
ถ้าโปรแกรมประยุกต์ของคุณมีการเชื่อมโยงกับ MFC ตัวชี้การCRuntimeClassโครงสร้างของคลาสพื้นฐานคอน?
คุณลักษณะเฉพาะใน Professional และ Enterprise Editionsnbsp เชื่อมโยงกับ MFC คงถูกสนับสนุนเฉพาะใน Visual c ++ Professional และ Enterprise Editions ดูข้อมูลเพิ่มเติม Visual c ++ Editions(&N)?
CObject * CreateObject ();
คลาสที่ได้รับจากCObjectสามารถสนับสนุนการสร้างแบบไดนามิก ซึ่งก็คือความสามารถในการสร้างวัตถุของคลาสที่ระบุเวลาเรียกใช้งาน เอกสาร มุมมอง และคลา สของเฟรม ตัวอย่าง ควรสนับสนุนการสร้างแบบไดนามิก ฟังก์ชัน createobject สมาชิกสามารถใช้ในการใช้ฟังก์ชันนี้ และสร้างวัตถุเรียนเหล่านี้ในระหว่างเวลารัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแบบไดนามิกและสมาชิกCreateObjectดู หัวข้อคลา CObjectและ CObject Class: การระบุระดับของฟังก์ชันในVisual c ++ Programmer ของคำแนะนำ?
BOOL IsDerivedFrom (const CRuntimeClass * pBaseClass) const;
ส่งกลับค่าTRUEถ้าคลาสของสมาชิกของคลาสเรียกIsDerivedFromที่ได้รับมาจากคลาสพื้นฐานโครงสร้างCRuntimeClassซึ่งได้ถูกกำหนดเป็นพารามิเตอร์ IsDerivedFromแนะนำจากสมาชิกชั้นขึ้นลูกโซ่ของคลาสที่ได้รับไปทางด้านบน และส่งกลับค่าเท็จเท่านั้นถ้าพบสำหรับคลาสพื้นฐานไม่ตรงกัน?
หมายเหตุnbsp การใช้โครงสร้างCRuntimeClassคุณต้องรวมแมโคIMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATEหรือIMPLEMENT_SERIALในการใช้งานที่คุณต้องการเรียกข้อมูลเวลาทำงานวัตถุคลา(&N)?
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้CRuntimeClassให้ดูบทความ CObject คลา: การเข้าถึงข้อมูลในคลาสเวลาทำงานในVisual c ++ Programmer ของคำแนะนำ?
ดูเพิ่มเติมnbspCObject::GetRuntimeClass, CObject::IsKindOf, RUNTIME_CLASS, IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, IMPLEMENT_SERIAL(&N)