CArray ซ้อน CArray ในC++(MFC) ทำยังไง?

ออกตัวก่อนว่าผมเขียนภาษาอื่นมาก่อน เพิ่งเคยจับงานC++ครั้งแรก
ผมอยากจะทำฟังก์ชั่นสำหรับUndo/Redo ซึ่งโค้ดที่ผมต้องการประมาณนี้

typedef CArray<CPoint,CPoint&> arr1;
typedef CArray<arr1,arr1&> arr2;

arr1 a;
arr2 b;

b.Add(a);

แต่มันerrorว่า
"error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'
เหมือนจะมีข้อจำกัดบางอย่างที่ไม่ยอมให้ใช้Array ซ้อนArrayแบบภาษาอื่นๆที่ผมเคยทำ

ผมค้นgoogle ดูแล้วเห็นเขาบอกให้เอาสิ่งที่สร้างในtypedefไปสร้างเป็นClass Object
https://stackoverflow.com/questions/864864/error-using-carray
แต่ผมอ่านแล้วไม่ค่อยเข้าใจ จึงมองไม่ออกว่าจะประยุกต์ใช้กับปัญหาของตัวเองยังไง

รบกวนช่วยแนะวิธีแก้ หรืออธิบายเพิ่มเติมจากลิ้งค์Stackoverflowนี้ก็ได้ครับ
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่