如何定义CArray动态数组?我想在头文件中定义动态数组为什么不可以,因为我想把它传递到另一个类中?

 我来答
知07700剖赶1b
2013-12-18 · TA获得超过307个赞
知道答主
回答量:305
采纳率:97%
帮助的人:62.4万
展开全部
TYPE是一个由CArray返回的参数。 ARG_TYPE模板参数指定用于访问存储在数组中对象的参数类型。通常是一个对TYPE的参考。ARG_TYPE是一个传递给CArray的参数。 说明:CArray类支持与CArray相似的数组,但是必要时可以动态压缩并扩展。数组索引从0开始。可以决定是固定数组上界还是允许当添加元素时扩展当前的边界。内存对上界是连续地分配空间,甚至一些元素可为空。 和CArray一样,CArray索引元素的访问时间是不变的,与数组大小无关。 提示:在使用一个数组之前,使用SetSize建立它的大小和为它分配内存。如果不使用SetSize,则为数组添加元素就会引起频繁地重新分配和拷贝。频繁地重新分配和拷贝不但没有效率,而且导致内存碎片。 如果需要一堆数组中的个别数据,必须设置CDumpContext对象的深度为1或更大。 此类的某成员函数调用全局帮助函数,它必须为CArray的大多数使用而定制。请参阅宏和全局量部分中的“类收集帮助器”。 当从一个CArray对象中移去元素时,帮助函数DestructElements被调用。 当添加元素时,帮助函数ConstructElements被调用。 数组类的派生与列表的派生相似。 如果要了解关于使用CArray的更多信息,请参阅联机文档“Visual C++程序员指南”中的“收集”。 请记住:使用CArray一定要包含头文件afxtempl.h。 #include用法CArraym_Array; m_Array.SetSize(10,10); CPointpt1(10,10); m_Array.Add(pt1); CPointpt2(10,50); m_Array.Add(pt2); CPointpt3(10,100); m_Array.Add(pt3); intsize=m_Array.GetSize(); CClientDCdc(this); dc.MoveTo(0,0);CPointpt;for(inti=0;i{
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式