getX和getY函数声明为常成员函数,作用是只允许函数引用类中的数据,而不允许修改它们,以保证类中数据的安全。数据成员x和y声明为protected,这样可以被派生类访问(如果声明为private,派生类是不能访问的)。
程序编译通过,运行结果为:
- x=3.5,y=6.4 p(new):[8.5,6.8]
测试程序检查了基类中各函数的功能,以及运算符重载的作用,证明程序是正确的。
2)声明派生类Circle
在上面的基础上,再写出声明派生类Circle的部分:
- class Circle:public Point //circle是Point类的公用派生类 {
- public: Circle(float x=0,float y=0,float r=0); //构造函数
- void setRadius(float ); //设置半径值 float getRadius( )const; //读取半径值
- float area ( )const; //计算圆面积 friend ostream &operator <<(ostream &,const Circle &); //重载运算符“<<”
- private: float radius;
- }; //定义构造函数,对圆心坐标和半径初始化
- Circle::Circle(float a,float b,float r):Point(a,b),radius(r){} //设置半径值
- void Circle::setRadius(float r){radius=r;} //读取半径值
- float Circle::getRadius( )const {return radius;} //计算圆面积
- float Circle::area( )const {
- return 3.14159*radius*radius; }
- //重载运算符“<<”,使之按规定的形式输出圆的信息 ostream &operator <<(ostream &output,const Circle &c)










