定义一个类:
class CMulPoint : public CObject
{
public:
CPoint point;
int time;
public:
CMulPoint()
{
} CMulPoint(CMulPoint& mulpoint)
{
point=mulpoint.point;
time=mulpoint.time;
}
CMulPoint& operator=(const CMulPoint& mulpoint)
{
point=mulpoint.point;
time=mulpoint.time;
return(*this);
}
};定义一个数组:
CArray<CMulPoint,CMulPoint> m_pointArray;CMulPoint mulpoint;mulpoint.point.x=1;
mulpoint.point.y=3;
mulpoint.time=38;
m_pointArray.Add(mulpoint);
假设数组中上一个元素的值为:point=(2,2);time=23;
执行完m_pointArray.Add(mulpoint);后,他开辟了一个新的空间,但他的值和上一个元素的值相同,而不是新的值,怎么回事哪?
数组中的元素我换成CPoint也不行,为什么阿?
class CMulPoint : public CObject
{
public:
CPoint point;
int time;
public:
CMulPoint()
{
} CMulPoint(CMulPoint& mulpoint)
{
point=mulpoint.point;
time=mulpoint.time;
}
CMulPoint& operator=(const CMulPoint& mulpoint)
{
point=mulpoint.point;
time=mulpoint.time;
return(*this);
}
};定义一个数组:
CArray<CMulPoint,CMulPoint> m_pointArray;CMulPoint mulpoint;mulpoint.point.x=1;
mulpoint.point.y=3;
mulpoint.time=38;
m_pointArray.Add(mulpoint);
假设数组中上一个元素的值为:point=(2,2);time=23;
执行完m_pointArray.Add(mulpoint);后,他开辟了一个新的空间,但他的值和上一个元素的值相同,而不是新的值,怎么回事哪?
数组中的元素我换成CPoint也不行,为什么阿?
解决方案 »
- 有没有API函数的参数类型是WORD或者BYTE的?
- WIN32 API怎么显示时间,主要是显示格式的问题
- VC程序工程中分别 Use MFC in a Static Library 和 Use MFC in a Shared DLL 有何不同?
- 怎样在对话框中添加WORD编辑窗口?小弟初学VC,找了很多相关的东西,但是理解不了,请大家把详细点的方法教我。谢谢啊。
- 关于字体的缩放!
- 串行化中怎样控制打开文件类型
- 关于C++编码实现远程控制的技术
- 请问如何让DataGrid的选择是一条记录?
- 如何在程序里控制按钮的不可见?
- 小弟出学VC++,写了个创建窗口的程序。可就是有错。
- 100分:请教文件操作错误提示“对 一未命名文件 的存取被拒绝”
- 窗体传递数据的问题,解决马上给分
CPoint pt(10,20);
ptArray.Add(pt); // Element 0
ptArray.Add(CPoint(30,40)); // Element 1
for (int i=0;i < ptArray.GetSize();i++)
{
CPoint& pt = ptArray.ElementAt(i);
cout<<pt.x <<","<<pt.y <<endl;
}
output :
10,20
30,40应该是你其他地方的问题
我验证了一下,不对阿,我知道msdn有例子。但就是不对。
mulpoint->point.y=3;
mulpoint->time=38;
m_pointArray.Add(&mulpoint);
...
new
Add
地址的问题。
============改成
CArray<CMulPoint,CMulPoint&> m_pointArray;
class CArray :
public CObject
2 INT_PTR Add(
ARG_TYPE newElement
);
3 CArray<CPoint,CPoint> ptArray;请看清楚,不要胡说一通!!!
你把:
CPoint pt(10,20);
ptArray.Add(pt); // Element 0
ptArray.Add(CPoint(30,40)); // Element 1
改成:
CPoint pt(10,20);
ptArray.Add(pt); // Element 0
pt = CPoint(30,40);
ptArray.Add(pt); // Element 1
再试试看呀?!
CArray<CMulPoint,CMulPoint> m_pointArray;CMulPoint *mulpoint = new CMulPoint;mulpoint->point.x=1;
mulpoint->point.y=3;
mulpoint->time=38;
m_pointArray.Add(*mulpoint);mulpoint = new CMulPoint;
mulpoint->point.x=2;
mulpoint->point.y=2;
mulpoint->time=23;
m_pointArray.Add(*mulpoint);
看到底谁没清楚,在胡说一通!!!
CMulPoint *mulpoint = new CMulPoint ;mulpoint->point.x=1;
mulpoint->point.y=3;
mulpoint->time=38;
m_pointArray.Add(&mulpoint);这是你后来写的:
CMulPoint *mulpoint = new CMulPoint;mulpoint->point.x=1;
mulpoint->point.y=3;
mulpoint->time=38;
m_pointArray.Add(*mulpoint);如果你硬要把这两个划等号的话,那我服...好了,到此为只,over!!
sorry. 昨天心情不太好。请原谅。