• 类数据成员点类派生出圆类


    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

    /* 
    * 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;
    
    }

        类和数据成员

    文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

  • 相关阅读:
    Bugku web web基础$_GET
    Bugku web 计算器
    Bugku web web2
    Bugku 杂项 宽带信息泄露
    Bugku 杂项 猜
    Bugku 杂项 又一张图片,还单纯吗
    Bugku 杂项 啊哒
    Bugku 杂项 眼见非实(ISCCCTF)
    Bugku 杂项 telnet
    Bugku 杂项 隐写
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3080508.html
Copyright © 2020-2023  润新知