class OwnerImage
{
public:
CSize GetImageSize();
private:
POINT m_pt[2];
int m_iImgWidth;
int m_iImgHeight;
}
CSize OwnerImage::GetImageSize()
{
return CSize(m_iImgWidth, m_iImgHeight);
}
其余函数省略了,在不断调用GetImageSize函数过程中,m_iImgWidth大小会发生变化,最初以为是CSize构造问题,后发现CSize继承于SIZE,此处正确。将m_pt[2]声明在最后,发现不会出现此问题,判定是POINT数组出现问题,另CPoint继承于POINT,后查找发现是由于在其他函数中使用m_pt[2],而数组无越界检查,故直接改变了m_iImgWidth值。以此为戒
时间: 2024-11-13 06:52:45