有三个类,arc和line是edge的派生类,现在我要用edge类的指针形成一个CArray序列,用这个序列来表示一个多边形的边界。在使用的时候有下面的问题。  
class  edge{};  
class  line:public  edge  {};  
class  arc:public  edge{};  
在类A里面要用到这样的情况  
class  A  
{  
public:  
   CArray<edge  *,  edge  *>  edgeArray;  
   void  fun1();  
   void  fun2();  
};  
void  A::fun1()  
{  
   arc  a1;  
   line  l1,l2;  
   edgeArray.Add(a1);  
   edgeArray.Add(l1);  
   edgeArray.Add(l2);  ........  
//在这个函数里面初始化了edgeArray,得到了指向边界每条边的指针,根据继承的性质,edge的指针可以自动判断它是指向line还是arc的对象。但是arc和line的对象只能在这个函数里生存,当我到fun2里面用edgeArray的时候,edge指针指向的对象已经不存在了,这种情况应该怎么办。不要告诉我把所有的line和arc对象作为类的成员:)
         
}  
void  A::fun2()  
{  
   在这个函数里面使用edgeArray的成员的时候,edge*所指向的对象已经不存在了:(

请问高手这样有什么办法解决,如果是你,你会怎么做呢,告诉我思想就可以了,多谢