操作符+没有返回完整对象

operator+ not returning full object?

本文关键字:对象 返回 操作符      更新时间:2023-10-16

我们给出了这个头文件,它要求我们重载=+操作符,以便我们可以执行i3 = i1 + i2

由于某种原因,我的+操作符没有返回一个完整的对象…它返回字符串很好,但是整数返回-858993460。这很奇怪,因为我给它们赋了一个值。

这是我的+操作符:

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

在我的=操作符中,这是值传递到的地方,它不正确地显示int s:

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问题。无论我经过哪个对象,我都面临同样的问题。字符串是可以的,但是整型似乎不能正确传递

原来是我的复制构造函数。我现在觉得自己很傻。

我所要做的就是在以Image为参数的操作符中赋一个默认值。

ie:

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