我有一个成员函数,该成员函数调用另一个成员函数,其中我使用类的私有属性,并且它将指向类的另一个指针作为参数。
现在,我要访问类的属性,并在计算后将它们复制到我作为参数使用的另一个对象指针。解释时有点混乱,但是我相信这是一个简单的代码。但是,当我尝试达到班级的属性时,我会遇到“细分错误”。代码如下:
在我的图像类中:
Image *Image::new_gray(int width, int height)
{
return new Image(width, height, 1);
}
void Image::box_filter_x(Image *buffer, int n)
{
printf("in box x func.\n");
printf("%d\n", m_width);
//m_width is class attribute. here i get segmentation fault and
//rest of the code doesn't run, obviously.
printf("m_width read, calculating further.\n");
....
buffer->m_width = m_width;
....
}
void Image::box_filter(Image *dst, int n)
{
printf("%d\n", m_width);
//this works as expected.
box_filter_x(dst, n);
//this is where i call my function.
}
我正在测试的另一个文件中的main函数内部:
int main(int argc, char** argv)
{
Image* gray = Image::new_gray(128, 128);
...
Image* gray1 = Image::new_gray(128, 128);
...
gray->box_filter(gray1, 3);
}
我尝试了this->box_filter_x(dst,n);
,但这也不起作用。
请帮助。