• 基类和派生类


    C++复习时的遗忘,真让人无奈啊。

    题目
    定义一个“点”类Dot,包含数据成员x,y(坐标点),在平面上两点连成一条直线,定义一个直线类Line,求直线的长度和直线中点坐标, 数据自拟。
    (提示:直线类继承Dot类,同时以Dot类作为其子对象)

    这道题目写的时候基类里面的数据类型是protected类型的,所以就加上了取值的函数,看起来很麻烦。

    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    using namespace std;
    class Dot {
    	protected:
    		double x,y;
    	public:
    		Dot(){}
    		Dot(double x1,double x2):x(x1),y(x2){}
    		void display() {
    			cout<<x<<" "<<y<<endl;
    		}
    		double getx() {
    			return x;
    		}
    		double gety() {
    			return y;
    		}
    };
    
    class Line:public Dot {
    	private:
    		Dot p1,p2;
    		double len;
    	public:
    		Line(double x1,double y1,double x2,double y2):p1(x1,y1),p2(x2,y2){}
    		Line(Dot a,Dot b):p1(a.getx(),a.gety()),p2(b.getx(),b.gety()){}
    		void Mid() {
    			x=(p1.getx()+p2.getx())/2;
    			y=(p1.gety()+p2.gety())/2;
    		}
    		void Length() {
    			len=sqrt(pow(fabs(p1.getx()-p2.getx()),2)+pow(fabs(p1.gety()-p2.gety()),2));
    		}
    		void display() {
    			printf("%.2lf %.2lf %.2lf
    ",x,y,len);
    		}
    };
    
    int main()
    {
    	Dot d1(0,0),d2(3,4);
    	d1.display();
    	d2.display();
    	Line l(d1,d2);
    	l.Length();
    	l.Mid();
    	l.display();
    	return 0;
    }
    
  • 相关阅读:
    Hammer.js--转载自李林峰的园子
    nodejs--模块
    gruntjs
    玩转github----1
    模块化开发--sea.js
    事件委托
    css兼容问题
    轮播图
    Spring整合Hibernate 二
    Spring整合Hibernate 一
  • 原文地址:https://www.cnblogs.com/xyqxyq/p/10350154.html
Copyright © 2020-2023  润新知