本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:邱学伟 * 完成日期:2013 年 5 月 15 日 * 版本号:v1.0 * 输入描述:无 * 问题描述: * 程序输出: * 问题分析: * 算法设计:略 */
/*(1)先建立一个Point(点)类,包含数据成员x,y(坐标点); (2)以Point为基类,派生出一个Circle(圆)类,增长数据成员 (半径); (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增长数据成员h(高)。 要求编写程序,设计出各类中基本的成员函数(包含构造函数、析构函数、修改数据成员和获得数据成员的大众接口、用于输出的重载运算符“<<”函数等),使之能用于处理以上类对象,最后求出圆格柱体的表面积、体积并输出。 */ #include <iostream> #include <cmath> using namespace std; class Point { public: Point(double x1,double y1):x(x1),y(y1){} void SetPoint(double x2,double y2); double getx(){return x;} double gety(){return y;} friend ostream & operator<<(ostream &,const Point &); protected: double x,y; }; void Point::SetPoint(double x2,double y2) { x=x2; y=y2; } ostream & operator<<(ostream &output,const Point &P) { output<<"("<<P.x<<","<<P.y<<")"<<endl; return output; } int main() { Point p(3.5,6.4); cout<<"x="<<p.getx()<<",y="<<p.gety()<<endl; p.SetPoint(8.5,6.8); cout<<"p="<<p<<endl; return 0; }
/*(1)先建立一个Point(点)类,包含数据成员x,y(坐标点); (2)以Point为基类,派生出一个Circle(圆)类,增长数据成员 (半径); (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增长数据成员h(高)。 要求编写程序,设计出各类中基本的成员函数(包含构造函数、析构函数、修改数据成员和获得数据成员的大众接口、用于输出的重载运算符“<<”函数等),使之能用于处理以上类对象,最后求出圆格柱体的表面积、体积并输出。 */ #include <iostream> #include <cmath> using namespace std; class Point //点类 { public: Point(double x1,double y1):x(x1),y(y1){} //构造函数 void SetPoint(double x2,double y2); double getx(){return x;} double gety(){return y;} friend ostream & operator<<(ostream &,const Point &);//友元函数重载“<<” protected: //受掩护的数据 double x,y; }; void Point::SetPoint(double x2,double y2) { x=x2; y=y2; } ostream & operator<<(ostream &output,const Point &P) { output<<"("<<P.x<<","<<P.y<<")"<<endl; return output; } //以Point为基类,派生出一个Circle(圆)类,增长数据成员 (半径radius); class Circle:public Point { public: Circle(double x=0,double y=0,double r=0);//构造函数 void SetRadius(double);//设置半径 double GetRadius()const {return r;}//提取半径数值 double area()const;//求圆的半径 friend ostream & operator<<(ostream &,const Circle &);//友元函数重载“<<” protected: double r; }; Circle::Circle(double a,double b,const double r1):Point(a,b),r(r1){} void Circle::SetRadius(double r0) { r=r0; } double Circle::area()const { return 3.14*r*r; } ostream & operator<<(ostream &output,const Circle &c) { output<<"center: ("<<c.x<<","<<c.y<<") r="<<c.r<<" area="<<c.area()<<endl; return output; } int main() { Circle c(3.5,6.4,5.2); cout<<"circle: x="<<c.getx()<<", y="<<c.gety()<<", r="<<c.GetRadius()<<", area="<<c.area()<<endl; c.SetPoint(5,5); cout<<"circle:"<<c<<endl; return 0; } /*(1)先建立一个Point(点)类,包含数据成员x,y(坐标点); (2)以Point为基类,派生出一个Circle(圆)类,增长数据成员 (半径); (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增长数据成员h(高)。 要求编写程序,设计出各类中基本的成员函数(包含构造函数、析构函数、修改数据成员和获得数据成员的大众接口、用于输出的重载运算符“<<”函数等),使之能用于处理以上类对象,最后求出圆格柱体的表面积、体积并输出。 */ #include <iostream> #include <cmath> using namespace std; class Point //点类 { public: Point(double x1,double y1):x(x1),y(y1){} //构造函数 void SetPoint(double x2,double y2); double getx(){return x;} double gety(){return y;} friend ostream & operator<<(ostream &,const Point &);//友元函数重载“<<” protected: //受掩护的数据 double x,y; }; void Point::SetPoint(double x2,double y2) { x=x2; y=y2; } ostream & operator<<(ostream &output,const Point &P) { output<<"("<<P.x<<","<<P.y<<")"<<endl; return output; } //以Point为基类,派生出一个Circle(圆)类,增长数据成员 (半径radius); class Circle:public Point { public: Circle(double x=0,double y=0,double r=0);//构造函数 void SetRadius(double);//设置半径 double GetRadius()const {return r;}//提取半径数值 double area()const;//求圆的半径 friend ostream & operator<<(ostream &,const Circle &);//友元函数重载“<<” protected: double r; }; Circle::Circle(double a,double b,const double r1):Point(a,b),r(r1){} void Circle::SetRadius(double r0) { r=r0; } double Circle::area()const { return 3.14*r*r; } ostream & operator<<(ostream &output,const Circle &c) { output<<"center: ("<<c.x<<","<<c.y<<") r="<<c.r<<" area="<<c.area()<<endl; return output; } int main() { Circle c(3.5,6.4,5.2); cout<<"circle: x="<<c.getx()<<", y="<<c.gety()<<", r="<<c.GetRadius()<<", area="<<c.area()<<endl; c.SetPoint(5,5); cout<<"circle:"<<c<<endl; return 0; }
文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!