【OOP】实验4 继承性
作者:3sbase | 发布时间:2016/3/19

一、实验类型

    设计型

二、实验目的与要求

1、实验目的

    练习面向对象的继承性

2、实验要求

掌握继承的实现方法。

三、上机准备

1、实验室安装VC++6.0软件。

2、复习教材10章的内容。

四、实验内容

定义图元基类、圆类和圆弧类,三者依次继承,通过数据成员和成员函数的调用观察运行结果。

1、实现图元基类、圆类和圆弧类,三者依次继承。要求类的定义和类的实现分别对应于头文件和源文件,即element.h element.cpp circle.h circle.cpp arc.h arc.cpp6个文件。注意派生类的构造函数的定义方式。

类名

数据成员和成员函数

数据成员定义及成员函数声明

CElement

数据成员

protected:

int X;

    int Y;

成员函数

public:

CElement(int InitX,int InitY);

int GetX();

int GetY();

class CCircle:public CElement

数据成员

protected:

    int Radius;

    bool Visible;

成员函数

public:

    CCircle(int InitX,int InitY,int InitR);

    void Show();

    void Hide();

    bool isVisible();

class CArc:public CCircle

数据成员

private:

    int StartAngle;

    int EndAngle;

成员函数

public:

    CArc(int InitX,int InitY,int InitRadius,int InitStartAngle,int InitEndAngle); 

void Show();

void Hide();

int GetStartAngle();

int GetEndAngle();

2、测试

新建一个C++源文件test.cpp,键入如下代码,分析运行结果,以书面的形式说明test.cpp中每一条语句的作用,记入实验报告。

#include"arc.h"

void main()

{

      CCircle c1(100,200,40);

      c1.Show();

      cout<<c1.GetX()<<endl;

      cout<<c1.GetY()<<endl;

      c1.Hide();

      if(c1.isVisible())

             cout<<"圆可见"<<endl;

      else

             cout<<"圆不可见"<<endl;

 

      //----------------------------

   CArc a1(400,150,50,30,120);

      a1.Show();    

      cout<<a1.GetX()<<endl;

      cout<<a1.GetY()<<endl;

      a1.Hide();

      if(a1.isVisible())

             cout<<"圆弧可见"<<endl;

      else

             cout<<"圆弧不可见"<<endl;

      cout<<"圆弧的起始角度:"<<a1.GetStartAngle()<<endl;

      cout<<"圆弧的终止角度:"<<a1.GetEndAngle()<<endl;

}

3、组合设计练习

定义一个CPoint类和CCircle类。

类名

数据成员和成员函数

数据成员定义及成员函数声明

CMapPoint

数据成员

private:

int X;

        int Y;

成员函数

public:

CMapPoint(int InitX=0,int InitY=0);


int GetX();

int GetY();

class CCircle

数据成员

Private:  

       CMapPoint point;


int Radius;

成员函数

public:

       CCircle( CMapPoint& p,int r=0);       void DisplayPoint();


建立一个C++源程序test.cpp,键入以下代码,分析运行结果。

#include"circle.h"

void main()

{

      CMapPoint a(2.3,5.6);

      CCircle c(a,7);

      c.DisplayPoint();

}

五、实验步骤

1VC++控制台应用程序的建立。

2、实现图元基类、圆类和圆弧类,三者依次继承。

3、组合设计练习

六、实验报告

1、根据实验内容要求,书写实习报告。