自己定义了一个CLINE类继承于CObject,并且重载了SERIALIZE函数。那这个CLINE能作为CObarray类的元素吗?
比如
CLine* line=new CLine;
CObArray Lines;
Lines.Add(Line);
这样可行吗?如果行的话那可以用Lines.serialize(ar)进行存取吗?用CTypedPrtArray<CObArray,CLines*>Lines与上面的方法有什么不同吗?
比如
CLine* line=new CLine;
CObArray Lines;
Lines.Add(Line);
这样可行吗?如果行的话那可以用Lines.serialize(ar)进行存取吗?用CTypedPrtArray<CObArray,CLines*>Lines与上面的方法有什么不同吗?
比如
CLine* line=new CLine;
CObArray Lines;
Lines.Add(Line);
这样可行吗?如果行的话那可以用Lines.serialize(ar)进行存取吗?
行,都可以用CTypedPrtArray <CObArray,CLines*>Lines与上面的方法有什么不同吗?
CObArray已经是一个CObject*类型的指针数组了,为什么还要再定义一个CObArray*类型的指针数组呢?
相当于定义了一个指针数组的数组
书上这么写的谢谢你们,明白了
CObArray指针类型是CObject*,当你获取CObject*指针式,你需要转换成你自己的指针,比如CLine*
CTypedPtrArray是一个模版类,他的指针类型是T,也就是你定义的CLine*
CTypedPtrArray<CLine,CLine*>
CObArray Lines;
Lines.Add(line); //这个要不要写成Lines.Add((CObArray*)line); ?当从Lines中提取某一元素是要不要转换类型?CLine* line=new CLine;
CObArray Lines;
...
line=(CLine*)Lines[1];//这里要不要类型转换?
需要,你这样转换就可以了
CTypedPtrArray <CPtrArray, CLine*> Lines;