CPoint类

本文展示了如何使用C++设计两个类,CPoint用于表示二维坐标点,C3DPoint作为其派生类扩展到三维空间。这两个类包含了构造函数、设置和获取坐标的方法,以及计算极坐标、角度和两点间距离的函数。在main函数中,对这些类的功能进行了测试和验证。
摘要由CSDN通过智能技术生成

题目

设计一个描述二维平面内一点的 CPoint 类,成员包括:x,y。需要实现的功能(成员函数):构造函数、设置坐标、获取坐标、获取极坐标、求两点之间的距离。然后再设计一个描叙三维平面内一点的C3DPoint 类,该类为 CPoint 类的派生类,新添加的成员括:z。需新添加或重新定义的功能包括:构造函数、设置坐标、获取坐标、求两点之间的距离。请在 main() 函数中测试之。

相关阅读

相关阅读

完整代码

#include "bits/stdc++.h"
using namespace std;

class CPoint{
protected:
    double x;
    double y;
public:
    CPoint(){
        cin >> x >> y;
    }
    void setPoint(double x, double y){
        this->x = x;
        this->y = y;
    }
    double getX(){
        return x;
    }
    double getY(){
        return y;
    }
    double getP(){
        return sqrt(x*x+y*y);
    }
    double getAngle(){
        return atan(y/x);
    }
    double getDistance(CPoint cPoint){
        return sqrt((cPoint.getX()-x)*(cPoint.getX()-x)+(cPoint.getY()-y)*(cPoint.getY()-y));
    }
};
class C3DPoint: public CPoint{
protected:
    double z;
public:
    C3DPoint():CPoint(){
        cin >> z;
    }
    void setC3DPoint(double x, double y, double z){
        setPoint(x, y);
        this->z = z;
    }
    double getZ(){
        return z;
    }
    double getDistance(C3DPoint c3DPoint){
        return sqrt((c3DPoint.x-x)*(c3DPoint.x-x) + (c3DPoint.y-y)*(c3DPoint.y-y) + (c3DPoint.z-z)*(c3DPoint.z-z));
    }
};

int main(){
    CPoint cPoint;
    cPoint.setPoint(1,2);
    cPoint.getX();
    cPoint.getY();
    cPoint.getP();
    cPoint.getAngle();
    CPoint cPoint1;
    cPoint.getDistance(cPoint1);
    C3DPoint c3DPoint;
    c3DPoint.setC3DPoint(1,2,3);
    c3DPoint.getX();
    c3DPoint.getY();
    c3DPoint.getZ();
    C3DPoint c3DPoint1;
    c3DPoint.getDistance(c3DPoint1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值