问题:C++复合类的简单案例

本程序通过VC++ 6.0编译与测试,程序中Circle为复合类,包含Point类,具体代码如下:

#include <iostream>
using namespace std;
//圆心点类:Point
class Point
{
public:
	Point();
	Point(float _x,float _y);
	void print();
private:
	float x;
	float y;
};

Point::Point()
{}

Point::Point(float _x,float _y)
{
	x=_x;
	y=_y;
}

void Point::print()
{
	cout<<"("<<x<<","<<y<<")"<<endl;
}

//复合类:圆

class Circle
{
public:
	Circle();
	Circle(float x,float y,float r);
	void setCircle(float r,Point p);
	void print();
private:
	float radius;
	Point center;
};

Circle::Circle()
{}
//进行初始化,center自动调用Point进行初始化
Circle::Circle(float x,float y,float r):center(x,y),radius(r){}

void Circle::setCircle(float r,Point p)
{
	radius=r;
	center=p;
}

void Circle::print()
{
	cout<<"radius:"<<radius<<endl;
	cout<<"center is:";
	center.print();
	cout<<endl;
}

int main()
{
	cout<<"//point类定义后输出的圆心:"<<endl;
	Point p(5,7);
	p.print();
	cout<<"//circle类定义后输出的半径和圆心:"<<endl;
	Circle c;
	c.setCircle(1,p);
	c.print();
	return 0;
}

程序运行结果: