操作符+没有返回完整对象
operator+ not returning full object?
我们给出了这个头文件,它要求我们重载=
和+
操作符,以便我们可以执行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();
}
相关文章:
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 如何访问从 COM 对象返回的 VARIANT 数据类型中的安全数组C++?
- 从我的对象返回静态数组
- 将unique_ptr作为<Object>unique_ptr<常量对象返回>
- 从右值对象返回成员
- 视觉对象 返回 C++ 中的双精度值
- 为什么类型为 sf::Text 的对象返回不同的 getPosition().y 和 getLocalBounds().
- std::min_element 从类对象返回意外结果
- C++无效的对象返回语义
- const引用是否延长临时对象返回的临时对象的寿命
- 将 NULL 作为对象返回时未收到任何警告
- 如何在 C# 中从 com 对象返回数组(double[])
- 从重载运算符返回引用,并使用临时对象返回表达式
- Cin 对象返回值 c++
- 将变量作为类对象返回
- 使用可更改对象返回只读的最佳方法是什么
- 如何在Cython中从另一个包装对象返回包装的c++对象
- 当对象返回时,c++动态数组被清除
- 从带有动态字段的函数、对象返回
- 从堆栈上的匿名对象返回对*this的引用