【发布时间】:2015-11-17 09:48:11
【问题描述】:
class point //declaration of class
{
private:
int x, y;
friend std::ostream &operator << (std::ostream &input, point &p);
public:
//constructors and some other methods
};
//definition of overloading <<
std::ostream &operator << (std::ostream &input, point &p)
{
input << std::cout << "x = " << p.x << " y = " << p.y << " ";
return input;
}
它可以工作,但是当我使用它时
std::cout << object;
它在我的文字前显示了一些垃圾:
062ACC3E8x = 1 y = 22
所以 062ACC3E8X 总是会出现。如果我重新启动我正在处理的 Visual Studio 是不同的,所以我想这是一些内存地址。如何摆脱它?我的代码中是否缺少某些内容或错误?
【问题讨论】:
-
input << std::cout <<WTF?在不了解其工作原理的情况下随意输入内容不会让您走得太远...... -
这不是随机输入的内容,只是一个错误。
标签: c++ operator-overloading overloading