我们得到了这个头文件,它要求我们重载 =
和 +
运算符,这样我们就可以执行 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 问题。无论我通过哪个对象,我都面临同样的问题。字符串没问题,但似乎没有正确传递整数
最佳答案
原来这是我的复制构造函数。我现在觉得很傻。
我所要做的就是在我的运算符中分配一个默认值,该值将图像作为参数。
即:
Image::Image( Image & const img )
{
this->size_x = img.get_size_x();
}
关于c++ - operator+ 没有返回完整的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098700/