C++:如何定义一个类,使这个类的对象属性是另一个类的对象?

比如先设计一个Point类,再定义一个Circle类,使Circle类对象的圆心属性是Point类对象,这个该怎么弄

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;
}

温馨提示:答案为网友推荐,仅供参考