嗨,我想了解如何使用“this”指针。现在我编写了一个示例程序,它使用了一个类 Image,它是 BMP 类的子类。现在函数 TellWidth 和 TellHeight 在 BMP 类中声明。现在编译器给了我一个错误,说 Image 中不存在 TellWidth 函数。但是由于 Image 是 BMP 的子类,它不应该继承 BMP 中的功能。我该如何解决这个问题
void Image :: invertcolors()
{
int x;
int y;
int width =(*this).TellWidth();
int height = (*this)->TellHeight();
for(x=0,x<=height-1;x++){
for(y=0,y<=width-1;y++){
(*this)(x,y)->Red = (255 - (*this)(x,y)->Red);
(*this)(x,y)->Blue = (255 - (*this)(x,y)->Blue);
(*this)(x,y)->Green = (255 - (*this)(x,y)->Green);
}
}
delete width;
delete height;
}
图片
class Image : public BMP
{
public:
void invertcolors();
void flipleft();
void adjustbrightness(int r, int g, int b) ;
};
这个类太大了,不能在这里发,这里是一个相关的摘录
class BMP {
private:
int Width;
int Height;
public:
int TellBitDepth(void) const;
int TellWidth(void) const;
int TellHeight(void) const;
};