【发布时间】:2013-11-19 09:03:51
【问题描述】:
我有一个 Point2D 类
Point2D
class Point2D
{
public:
int getX() const;
int getY() const;
void setX(int);
void setY(int);
protected:
int x;
int y;
};
我正在尝试重载输出运算符 p2d_list.begin() 但我不确定该怎么做,这是我的尝试
ostream& operator<< (ostream& afile, Point2D* p2)
{
afile<<left
<<setw(1)
<<"["
<<left
<<setw(5)
<<p2->getX()
<<" ,"
<<left
<<setw(5)
<<p2->getY()
<<" ] "
<<left
<<setw(6)
<<p2->getScalarValue()
<<endl;
return afile;
}
在我的主要功能中
int main()
{
list<Point2D> p2d_list;
list<Point2D>::iterator p2 = p2d_list.begin();
while ( p2 != p2d_list.end() )
{
cout<<p2; //error here
p2++;
}
}
我收到以下错误
错误 C2679:二进制“”类型右侧操作数的运算符(或没有可接受的转换)
如何重载输出运算符
【问题讨论】:
标签: c++ linked-list overloading operator-keyword