计算三维坐标中一直线的长度C++

主要是针对于类友元进行复习,三维坐标中直线的长度就是两个端点之间各分量距离平方开跟,各分量距离x轴与x轴相减的绝对值,y轴与y轴相减的绝对值,z轴与z轴相减的绝对值。

#include <iostream>

using namespace std;

class Dian
{
public:
    Dian(int x = 0, int y = 0, int z = 0) : x(x), y(y), z(z) {}
    int getx() { return x; }
    int gety() { return y; }
    int getz() { return z; }
    friend float juli(Dian &a, Dian &b);//友元函数,不是成员函数,不能使用成员函数运算符来调用

private:
    int x, y, z;
};

float juli(Dian &a, Dian &b)//a,b分别表示a点,b点,各有三个坐标
{
    double x = a.x - b.x; //a.x表示a点的x坐标
    double y = a.y - b.y;
    double z = a.z - b.z;
    return static_cast<float>(sqrt(x * x + y * y + z * z));
}

int main()
{
    Dian A(4, 5, 8), B(6, 8, 10);
    cout << "两点之间的距离是:";
    cout << juli(A, B) << endl;
    return 0;
}

附:

1.为何需要友元?

答:在为类重载二元运算时(带两个参数的运算符)常常需要友元。

2.创建友元的两步走是什么?

答:第一步,将友元函数放在类声明中,并在其原型前加上关键字friend;

       第二步,编写函数定义,且不要再定义中使用friend。

类的友元函数是非成员函数,其访问权限与成员函数相同。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值