operator +没有返回完整的对象?

时间:2011-11-11 19:06:19

标签: c++

我们收到了这个头文件,要求我们重载=+运算符,以便我们可以i3 = i1 + i2

由于某种原因,我的+运算符没有返回一个完整的对象...它返回字符串就好了,但是整数返回-858993460。考虑到我为他们分配了一个值,这很奇怪。

这是我的+运算符:

Image Image::operator+(Image const& image)
{
    return image;
}

在我的=运算符中,值传递给它,它会错误地显示int

const Image& Image::operator=(Image const& image)
{
    cout << image.filename << endl; // Displays correctly
    cout << "image x: " << image.size_x << ": " << image.get_size_x() << endl; // Displays incorrectly (-int)

这里我正在研究一个新对象,但它没有工作,所以我只是简单地传递了一个我知道已分配值的对象,它仍然面临着uninit int问题。无论我通过哪个对象,我都面临同样的问题。字符串没问题,但是整数似乎没有正确传递

1 个答案:

答案 0 :(得分:3)

事实证明它是我的复制构造函数。我现在觉得很傻。

我所要做的就是在我的运算符中指定一个默认值,该值将Image作为参数。

即:

Image::Image( Image & const img )
{
     this->size_x = img.get_size_x();
}