详解C++编程的多态性概念

2020-01-06 13:43:42王振洲

getX和getY函数声明为常成员函数,作用是只允许函数引用类中的数据,而不允许修改它们,以保证类中数据的安全。数据成员x和y声明为protected,这样可以被派生类访问(如果声明为private,派生类是不能访问的)。

程序编译通过,运行结果为:

 

 
  1. x=3.5,y=6.4  p(new):[8.5,6.8] 

测试程序检查了基类中各函数的功能,以及运算符重载的作用,证明程序是正确的。

2)声明派生类Circle

在上面的基础上,再写出声明派生类Circle的部分:

 

 
  1. class Circle:public Point //circle是Point类的公用派生类  { 
  2. public:  Circle(float x=0,float y=0,float r=0); //构造函数 
  3. void setRadius(float ); //设置半径值  float getRadius( )const; //读取半径值 
  4. float area ( )const; //计算圆面积  friend ostream &operator <<(ostream &,const Circle &); //重载运算符“<<” 
  5. private:  float radius; 
  6. };  //定义构造函数,对圆心坐标和半径初始化 
  7. Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}  //设置半径值 
  8. void Circle::setRadius(float r){radius=r;}  //读取半径值 
  9. float Circle::getRadius( )const {return radius;}  //计算圆面积 
  10. float Circle::area( )const  { 
  11. return 3.14159*radius*radius;  } 
  12. //重载运算符“<<”,使之按规定的形式输出圆的信息  ostream &operator <<(ostream &output,const Circle &c)