class Point
{
...
};
class Circle
{
Point center;
...
};
追问主函数输出圆心坐标时该怎么表示呢,还需要在Circle类里面为坐标声明吗
追答你可以重载Point类的operator<<方法,使得cout可以直接输出一个Point对象
或者也可以用原始的方法,依次输出Point对象的x和y的值。
追问没看懂。。。(我刚学到这)我的意思是输出坐标时,用Circle类作为输出该怎么表示,直接用Point的成员函数吗
追答#include<iostream>
using namespace std;
class Point
{
public:
int x, y;
friend ostream& operator<<(ostream&, Point);
Point(int x, int y): x(x), y(y){}
};
class Circle
{
public:
Point center;
int radius;
Circle(Point p, int r): center(p), radius(r){}
};
ostream& operator<<(ostream& out, Point p)
{
return out<<'('<<p.x<<", "<<p.y<<')';
}
int main()
{
Point p(1, 2);
Circle c(p, 3);
// 方法1,调用Point类的operator<<重载
cout<<c.center<<endl;
// 方法2,直接输出Point类的x成员和y成员
cout<<'('<<c.center.x<<", "<<c.center.y<<')'<<endl;
return 0;
}