C++实验3
来源:互联网 发布:邯郸市网络教研 编辑:程序博客网 时间:2024/05/21 15:06
一、问题及代码
/* * 文件名称:友元函数的应用 * 作 者:刘坤* 完成日期:2016年4月8日 * 版 本 号:vc6.0 * 对任务及求解方法的描述部分:实现求距离函数的三种版本,分别利用成员函数、友元函数和一般函数求两点间距离的函数。* 输入描述:输入两点的坐标 * 问题描述:求两点的距离 * 程序输出:输出两点的距离 * 问题分析:区分成员函数、友元函数和一般函数的实现和调用 * 算法设计:略 */ #include <iostream> #include <Cmath> using namespace std; class CPoint { private: double x; double y; public: CPoint(double xx=0, double yy=0):x(xx),y(yy){} void distance1(CPoint p1,CPoint p2); friend void distance2(CPoint &p1, CPoint &p2); double getx(){return x;} double gety(){return y;} }; void CPoint::distance1(CPoint p1,CPoint p2) { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); cout<<"d="<<d<<endl; } void distance2(CPoint &p1,CPoint &p2) { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); cout<<"d="<<d<<endl; } void distance3(CPoint p1, CPoint p2) { double d=sqrt((p1.getx()-p2.getx())*(p1.getx()-p2.getx()) + (p1.gety()-p2.gety())*(p1.gety()-p2.gety())); cout<<"d="<<d<<endl; } int main() { CPoint p1(3,4), p2(2,1); p1.distance1(p1,p2); distance2(p1, p2); distance3(p1, p2); return 0; }二、运行结果
三、心得体会
一直不懂友元函数的调用,后来看书明白了,可是一般成员函数又出问题了,折腾许久才弄懂,总感觉离不开课本。
四、知识点总结
友元函数可直接调用类里面的数据成员,一般函数不可以。
0 0
- C#-实验3
- [C++]实验三
- c语言实验
- 哈希表实验C语言版
- C语言 枚举实验
- C-S通信实验
- C 实验总结
- C程序设计实验1
- C程序设计实验2
- c语言实验
- C++-实验-项目五
- C#—实验10.4
- C++---第七次实验。
- c++--补第二次实验
- C语言递归实验
- C语言实验-素数
- C+实验2
- C++STL 第二次实验
- OpenCV 图像几何变换:旋转,缩放,斜切
- Linux远程管理器xshell和xftp使用教程
- 【笔记】 《js权威指南》- 第16章 脚本化CSS 16.1 CSS概览
- C++第三次实验
- 【LeetCode】62. Unique Paths解法及注释
- C++实验3
- 【AC自动机】【数据结构】【树】【Aho-Corasick automation】AC自动机理解(入门)
- CGAL VS2010环境变量
- android中TextView分段展示不同颜色,字体,时间
- Java中Synchronized的用法
- C++第三次试验2.1
- 关于表单提交数据转Json
- Mapper抽象类参数
- C++第三次上机实验作业