C++类和对象的继承和派生

来源:互联网 发布:网络前沿技术有哪些 编辑:程序博客网 时间:2024/06/09 13:57


1 实验内容及目的

2 实验步骤

   在头文件中声明3DPoint类所继承的类是MyPoint类,同时声明中3DPoint类中特殊的属性与方法,在CPP文件中进行实现,最后通过Test类中的Main函数创建一个3DPoint对象,从而完成测试。

3 源代码

3DPoint.h:

   #include"MyPoint.h"

class _3DPoint :public MyPoint

{

public:

    _3DPoint();

    _3DPoint(doublex1, double y1, double z1);

    doublegetZ();

    doubledistance(_3DPoint _3DPoint);

 

 

private:

    doublez;

};

 

3DPoint.cpp:

    #include"3DPoint.h"

#include <math.h>

 

_3DPoint::_3DPoint(){

    x =0;

    y =0;

    z =0;

}

 

_3DPoint::_3DPoint(double x1, double y1,double z1){

    x =x1;

    y =y1;

    z =z1;

}

 

double _3DPoint::getZ(){

    returnz;

}

 

double _3DPoint::distance(_3DPoint _3DPoint){

    doubleresult;

    result= sqrt(pow((x - _3DPoint.getX()), 2) + pow((y - _3DPoint.getY()), 2) + pow((z -_3DPoint.getZ()),2));

    returnresult;

}

 

Test.cpp:

    #include"3DPoint.h"

#include <iostream>

using namespace std;

 

int main(){

    _3DPointaPoint;

    cout<< "第一个点的坐标为:" << "("<< aPoint.getX() << ","

       <<aPoint.getY() << "," << aPoint.getZ() << ")" << endl;

   

    _3DPointbPoint(10, 30, 25.5);

    cout<< "第二个点的坐标为:" << "("<< bPoint.getX() << ","

       <<bPoint.getY() << "," << bPoint.getZ() << ")" << endl;

 

    cout<< "两点之间的距离为:" <<aPoint.distance(bPoint) << endl;

//MyPoint cPoint;

//  MyPointdPoint(3, 4);

//  cout<< cPoint.distance(dPoint) << endl;

}

 

4 遇到的问题与分析

   在实验过程中,我对C++中如何实现派生类的语法还不太熟悉,导致一开始写的程序总是存在错误,但在复习书本和参考样例代码后我基本上掌握了C++类和对象的继承和派生。

5 实验体会

   在以前学习Java的时候我对面向对象中的继承概念有了基本的了解,而这次的实验则让我学习到了同样的概念在C++这门语言中是如何实现的,与Java类似的实验对比,让我对继承概念有了更加深刻的认识,同时也使我见识到C++的语法特色。

 

0 0
原创粉丝点击