问题: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;
}
程序运行结果: