计算三维坐标中一直线的长度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。

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

    原文作者:Derrick Bai
    原文地址: https://blog.csdn.net/m0_56574701/article/details/122101547
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞