打印

重载操作符问题

[复制链接]
983|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可以把错误提示贴出来看看

使用特权

评论回复
5
秋天落叶| | 2012-12-27 23:44 | 只看该作者
pkat 发表于 2012-12-26 22:37
报的是啥错误

建议把错误提示贴出来

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝