TN004: c ++แม่มือ

หมายเหตุนี้อธิบายปัญหาแม่คลาส MFC และเครื่องมือขยายแม่แบบของ MFC TEMPLDEF?

ปัญหา

MFC ใช้แม่แบบเรียนคลาสที่คอลเลกชันมาตรฐานนำไปใช้ แม่แบบชั้นเรียนที่สามารถขยายตามอาร์กิวเมนต์ชนิดที่ระบุ โดยผู้ใช้ได้ เรียนรวบรวมมาตรฐาน MFC คลาสที่ใน AFXCOLLH และการทำงานของพวกเขาอยู่แล้ว pre-expanded สำหรับคุณ เมื่อต้องการสร้างคลาสที่คอลเลกชันของคุณเองสำหรับชนิดของคุณเอง คุณสามารถใช้ AFXTEMPLH ซึ่งประกอบด้วยอาร์เรย์ รายการ และแม่แบบคลาแผนที่โดยใช้ไวยากรณ์แม่ c ++มาตรฐาน เครื่องมือ TEMPLDEF มีไว้เฉพาะสำหรับความเข้ากันได้แบบย้อนกลับ (ในกรณีคุณถูกใช้ในการสร้างคลาสที่คอลเลกชันของคุณเองในรุ่นก่อนหน้านี้)?

เครื่องมือ TEMPLDEF

เครื่องมือ TEMPLDEF expander เป็นแม่แบบได้ TEMPLDEF ใช้ไวยากรณ์คล้ายคลึงกับไวยากรณ์ภาษา ANSI เพื่อที่จะใช้ TEMPLDEF คุณต้องสร้างมันก่อน เหมือนอย่างอื่น ตัวอย่างนี้มีให้เฉพาะสำหรับความเข้ากันได้แบบย้อนหลัง ตั้งแต่กับเวอร์ชันนี้ของ Visual c ++ จริง c ++แม่แบบจะมีการรองรับกับคลาสที่แม่ MFC ที่ใช้ (ดูคลาCList, CArrayและCMap )

วิธีการเริ่มต้นที่ดีคือ โดยตรวจสอบที่สี่CTT แม่เรียนกับ MFC (พบในตัวอย่างโปรแกรมอรรถประโยชน์ในการเขียนโปรแกรม MFC TEMPLDEFไดเรกทอรีย่อย) MKCOLLBAT ชุดแฟ้มทำให้ตัวอย่างของไวยากรณ์บรรทัดคำสั่งของเครื่องมือ TEMPLDEF แบบฟอร์มทั่วไปของไวยากรณ์บรรทัดคำสั่งเป็นแบบจำลองหลังจาก c ++ typedefของแม่เทียบชั้น ตัวอย่างเช่น,

typedef CLinkedListltCMyObj > CMyLinkedList

กลายเป็น

TEMPLDEF "CLinkedListltCMyObj > CMyLinkedList " LINKLISTCTT MYLISTH MYLISTINL MYLISTCPP

คลาสที่ MFC แม่ได้ที่ซับซ้อนขึ้นเล็กน้อยกว่าอย่างนี้ มีจำนวนพารามิเตอร์แม่แบบบูลีนค่าคงที่ทำให้รูปแบบเล็กน้อยต่าง ๆ ของคอลเลกชันที่ยังไม่สมบูรณ์ โปรดดู TEMPLDEFอย่างสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับโปรแกรม TEMPLDEF และตัวเลือกบรรทัดคำสั่งสำหรับการใช้คลาสที่ระบุแม่แบบ?

หมายเหตุด้านเทคนิคตามหมายเลข|nbsp หมายเหตุด้านเทคนิคตามประเภท(&N)

Index