关于CArray的一些问题求助
每次利用Add()将对象添加到数组pts中
但是最终pts.GetSize()的结果永远是1
调试的时候发现每执行一次pts.GetSize()
m_pData都是一个新的值(值是正确的,就是说是我希望传进数组里的那个值)
m_nSize和m_nMaxSize都是1
初学者,求轻喷
相关代码如下
//CGeoPolyline.cpp
void CGeoPolyline::AddPoint(CPoint pt)
{
pts.Add(pt);
}
void CGeoPolyline::Draw(CDC *pDC)
{
int size =pts.GetSize();
for(int i=0;i<size;i++)
{
if(i==0)
pDC->MoveTo(pts[i]);
else
pDC->LineTo(pts[i]);
}
//pDC->Polyline(pts.GetData(),size);
}
//CGeoPolyline.h
#pragma once
#include "GeoObject.h"
#include "afxtempl.h"
class CGeoPolyline :
public CGeoObject
{
public:
CArray<CPoint,CPoint>pts;
void AddPoint(CPoint pt);
void Draw(CDC *pDC);
CGeoPolyline(void);
~CGeoPolyline(void);
};
但是最终pts.GetSize()的结果永远是1
调试的时候发现每执行一次pts.GetSize()
m_pData都是一个新的值(值是正确的,就是说是我希望传进数组里的那个值)
m_nSize和m_nMaxSize都是1
初学者,求轻喷
相关代码如下
//CGeoPolyline.cpp
void CGeoPolyline::AddPoint(CPoint pt)
{
pts.Add(pt);
}
void CGeoPolyline::Draw(CDC *pDC)
{
int size =pts.GetSize();
for(int i=0;i<size;i++)
{
if(i==0)
pDC->MoveTo(pts[i]);
else
pDC->LineTo(pts[i]);
}
//pDC->Polyline(pts.GetData(),size);
}
//CGeoPolyline.h
#pragma once
#include "GeoObject.h"
#include "afxtempl.h"
class CGeoPolyline :
public CGeoObject
{
public:
CArray<CPoint,CPoint>pts;
void AddPoint(CPoint pt);
void Draw(CDC *pDC);
CGeoPolyline(void);
~CGeoPolyline(void);
};
...全文
相关推荐
CArray详解例子说明
和 CArray 一样,CArray 索引元素的访问时间是不变的,与数组大小无关。在使用 CArray 之前,需要使用 SetSize 建立数组的大小和分配内存。
CArray 详解
然而,使用CArray时也应注意,不当的操作可能会导致内存泄漏或其他资源管理问题,因此在实际编程中需谨慎处理。正确理解并掌握CArray的特性,能够显著提高代码的性能和可维护性。
CArray数组详细介绍
CArray数组详细介绍CArray 是 MFC 中的一个数组类,它支持动态数组,可以存放任何数据类型。
CArray排序实例
CArray提供了许多方便的方法来操作和管理数组,其中包括排序功能。本篇文章将深入探讨CArray的排序机制,以及如何在实际项目中应用。
MFC数组类CArray
一、CArray的基本概念与创建CArray是基于模板的类,可以存储任何类型的对象,只要这些对象支持赋值运算符。


工具平台和程序库
