|
发表于 2009-11-6 01:36:25
|
显示全部楼层
IP:江苏扬州
#include <iostream>
#include <cmath>
using namespace std;
class C2D
{
protected:
double x, y;
public:
C2D() { x = y = 0.0; }
C2D(double i, double j):x(i), y(j) { }
void setX(double newX) { x = newX; }
void setY(double newY) { y = newY; }
double getX() const { return x; }
double getY() const { return y; }
double getDistance(const C2D point1) const;
};
double C2D::getDistance(const C2D point) const
{
double dx,dy;
double distance;
dx=x-point.getX();
dy=y-point.getY();
distance=sqrt(dx * dx + dy * dy);
return distance;
}
class C3D:public C2D
{
private:
double z;
public:
C3D():C2D(0.0,0.0),z(0.0){}
C3D(double i, double j, double k):C2D(i,j),z(k){}
void setZ(double newZ){z=newZ;}
double getZ(){return z;}
double getDistance(C3D point) const;
};
double C3D::getDistance(C3D point) const
{
double dx, dy,dz;
dx=x-point.getX();
dy=y-point.getY();
dz=z-point.getZ();
return sqrt(dx*dx+dy*dy+dz*dz);
}
void main()
{
C2D c2d;
C3D c3d;
C2D a;
C3D b;
a.setX(1.0);
a.setY(2.0);
b.setX(1.0);
b.setY(2.0);
b.setZ(3.0);
cout<<c2d.getDistance(a)<<endl;//a与c2d两点的距离
cout<<c3d.getDistance(b)<<endl;//b与c3d两点的距离
} |
|