/*
*Copyright(C) 2016,计算机与控制工程学院
*All rights reserved.
*文件名:test.cpp
*作者:张志新
*完成日期:2016年5月1日
*版本号:v1.0
*
*问题描述:Point类h和Circle类。
*/
#include<iostream>
using namespace std;
class Point
{
protected:
double x;//横坐标
double y;//纵坐标
public:
Point(double x=0,double y=0);
Point();
double getX() const
{
return x;
}
double getY() const
{
return y;
}
void setPoint(double a,double b);
void display();
};
void Point::setPoint(double a,double b)
{
x=a;
y=b;
}
void Point::display()
{
cout<<x<<","<<y<<endl;
}
Point::Point(double a,double b):x(a),y(b){}
class Circle:public Point
{
protected:
double radius;
public:
Circle(double x=0,double y=0,double radius=0 );//构造函数(x,y是基类里的变量)
void setRadius(double); //设置半径值
double getRadius( ) const; //读取半径值
double area ( ) const; //计算圆面积
void show();
};
Circle::Circle(double a,double b,double r ):Point(a,b),radius(r){}
void Circle::setRadius(double c)//设置元的半径
{
radius=c;
}
double Circle::getRadius( )const//得到圆的半径
{
return radius;
}
double Circle::area ()const//计算圆的面积
{
return 3.1415926*radius*radius;
}
void Circle::show()//输出这个圆的信息
{
cout<<"此圆原点为:("<<x<<","<<y<<") 半径为:"<<radius<<" 面积为:"<<area()<<endl;
}
int main()
{
Circle p1(1.8,1.5,1);
p1.show();
p1.setRadius(3);
cout<<"更改半径后:"<<endl;
p1.show();
return 0;
}
学习心得:
在这个程序中用到了继承,在写这个程序时出现了一些问题在类中成员的变量我用了私有形式导致在派生类里无法使用,在类中应用保护形式这样在派生类中就可以访问了。在定义一些成员函数时有一些用const形式会更好( double getY() const double getX() const double getRadius( ) const)。