重载操作符问题

[复制链接]
1391|4
 楼主| txcy 发表于 2012-12-26 22:24 | 显示全部楼层 |阅读模式
现在编写一个程序,自己设计一个Image类存储位图信息。需要重载操作符-完成两幅位图相减。现在主程序
Image imgTemp = imgA - imgB调用重载的减法,重载减法代码如下:
Image operator(const Image &img1, const Image &img2){
                   Image temp1(img1);
Image temp2(img2);
int lineByte = temp1.getlineByte();
                int height = temp1.getbmpHeight();
unsigned char* bmpBuf = new unsigned char[lineByte * height];
for(int i = 0; i != height; i++)
for(int j = 0; j != lineByte; j++)
bmpBuf[i * lineByte + j] = unsigned char(0);
for(int i = 0; i != height; i++)
for(int j = 0; j != lineByte; j++){
   if((i * temp2.getlineByte() + j) < temp2.getlineByte() * temp2.getbmpHeight())
bmpBuf[i * lineByte + j] =
temp1.getpBmpBuf()[i * lineByte + j] - temp2.getpBmpBuf()[i * temp2.getlineByte() + j];
}
temp1.setpBmpBuf(bmpBuf);
return temp2;
}
调用减法完成后,返回主函数后,显示imgTemp 和 imgB的pBmpBuf指针错误,调试的时候又转到dbgdel.cpp文件中,说是MemBlock堆指针中有错误,请问这是什么问题,如何解决?
pkat 发表于 2012-12-26 22:37 | 显示全部楼层
报的是啥错误
无冕之王 发表于 2012-12-26 22:51 | 显示全部楼层
不明白这个位图相减有何意义,两个不相同的位图怎么减?还有函数没有添加减号操作符
yybj 发表于 2012-12-26 23:03 | 显示全部楼层
LZ可以把错误提示贴出来看看
秋天落叶 发表于 2012-12-27 23:44 | 显示全部楼层
pkat 发表于 2012-12-26 22:37
报的是啥错误

建议把错误提示贴出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部