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++的语法特色。