找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1025|回复: 2

類的派生該怎么用??

[复制链接]
发表于 2009-11-6 01:36:24 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include <iostream.h>
#include <math.h> //for sqrt()
class C2D
{
protected:
double x, y; //x and y coordinates
public:
C2D() { x = y = 0.0; } //default constructor
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(C2D point) const; // get distance of 2D points
};
// calculate the distance of two 2D points
double C2D::getDistance(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();
C3D(double i, double j, double k);
void setZ(double newZ);
double getZ();
double getDistance(C3D point) const; //get distance for two 3D points
};

該怎麽延伸到三維的啊!!!!
发表于 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两点的距离
}
回复

使用道具 举报

发表于 2009-11-6 01:36:27 | 显示全部楼层 IP:江苏扬州
thx
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 17:38 , Processed in 0.182073 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表