C++两点间距离计算:友元函数与成员函数实现
需积分: 4 193 浏览量
更新于2024-08-04
收藏 2KB TXT 举报
本文档主要介绍了在C++编程中如何计算两点之间的距离,提供了两种不同的实现方式:友元函数和成员函数。
1. 友元函数实现:
在C++中,友元函数(Friend Function)是一种特殊类型的函数,它可以直接访问类的私有成员,而无需成为类的成员。在这个例子中,`distance`函数被声明为`Point`类的友元,允许它直接访问类的内部变量`x_`和`y_`,从而计算两点间的距离。代码如下:
```cpp
friend double distance(const Point &p1, const Point &p2);
```
`distance`函数接收两个`Point`对象作为参数,计算它们横坐标(`dx = p1.x_ - p2.x_`)和纵坐标(`dy = p1.y_ - p2.y_`)的差,然后应用勾股定理(`std::sqrt(dx*dx + dy*dy)`)得到两点之间的距离。
2. 成员函数实现:
另一种实现方式是通过定义一个成员函数`distance_to`,它是一个`const`函数,意味着它可以安全地被非const对象调用,不会修改对象的状态。这个函数接受一个`const`引用作为参数,同样用于计算两点之间的距离,但没有直接访问类的私有数据,而是通过对象的公共接口获取坐标值。这样做的好处是保持了封装性,提高了代码的可读性和维护性。
```cpp
double distance_to(const Point &other) const {
double dx = x_ - other.x_;
double dy = y_ - other.y_;
return std::sqrt(dx * dx + dy * dy);
}
```
在`main`函数中,通过`p1.distance_to(p2)`调用成员函数,计算并输出两点之间的距离。
总结来说,两种方法都可以用来计算两点间的距离,友元函数直接访问类的私有数据,而成员函数则通过对象的公共接口间接操作。选择哪种方式取决于具体的编程需求,如是否需要保持封装、提高代码可维护性或简化函数调用等。友元函数适用于不需要改变类状态的情况,而成员函数更适合于需要在类内部逻辑中使用距离计算的场景。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2008-10-03 上传
2023-06-06 上传
2023-05-20 上传
174 浏览量
2017-11-27 上传
213 浏览量
逃逸的卡路里
- 粉丝: 1w+
- 资源: 5219
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程