程序代码
#include <iostream> using namespace std; class Point//点类 { public: //使用初始化表初始化点类 Point(double a = 0, double b = 0):x(a), y(b){} double getX(); double getY(); //重载<<实现点的坐标的输出 friend ostream& operator<<(ostream &output, Point &p); protected: double x;//横坐标 double y;//纵坐标 }; //得到x的值 double Point::getX() { return x; } //得到y的值 double Point::getY() { return y; } //重载<<实现点的坐标的输出 ostream& operator<<(ostream &output, Point &p) { output<<"("<<p.x<<","<<p.y<<")"<<endl; return output; } //Point派生出Circle类 class Circle : public Point { public: //构造函数(初始化半径的两个端点) Circle(double a, double b, double r); void SetRadius();//设置圆的半径 double GetRadius();//得到圆的半径 double getArea();//计算圆的面积 //重载<<实现输出圆的面积 friend ostream& operator<<(ostream &output, Circle &c); protected: double r;//圆的半径 }; //构造函数(使用初始化表初始化Circle类) Circle::Circle(double a, double b, double r):Point(a, b),r(r){} //设置圆的半径 void Circle::SetRadius() { this->r = r; } //得到圆的半径 double Circle::GetRadius() { return r; } //计算圆的面积 double Circle::getArea() { //计算圆的面积 double s = 3.14 * r * r; return s; } //重载<<实现输出圆的面积 ostream& operator<<(ostream &output, Circle &c) { output<<"圆的面积:"<<c.getArea()<<endl; return output; } void main() { //定义一个圆对象 Circle c(1.0, 2.9, 4.0); //输出圆的半径 cout<<"圆的半径:"<<c.GetRadius()<<endl; //输出圆的面积 cout<<c; system("pause"); }
执行结果
时间: 2024-10-27 13:47:19