第七周 任务二
来源:互联网 发布:tcp编程实例 编辑:程序博客网 时间:2024/05/19 05:33
/* 实验内容:利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 两点之间的距离 * 作 者: 薛广晨 * 完成日期: 2012 年 4 月 1 日 * 版 本号: x1.0 * 对任务及求解方法的描述部分 * 输入描述:输出两点之间的距离* 程序头部的注释结束(此处也删除了斜杠) */// 你需要完成的任务是,利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数,并设计main()函数完成测试。此任务和上例的区别在于“距离是一个点和另外一个点的距离”,参数个数上有体现。下面是点类的部分代码。#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 p) const;friend void Distance2(CPoint &, CPoint &); //友元函数声明double getX(){return x;}double getY(){return y;}};void Distance3(CPoint &, CPoint &); //一般函数声明void CPoint :: Distance1(CPoint p) const // 两点之间的距离(一点是当前点,另一点为参数p){double d; d = sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));cout << "用成员函数输出" << "两点之间的距离:" << d << endl;}void Distance2(CPoint &X, CPoint &Y){double d;d = sqrt((X.x - Y.x) * (X.x - Y.x) + (X.y - Y.y) * (X.y - Y.y));cout << "用友元函数输出" << "两点之间的距离:" << d << endl;}void Distance3(CPoint &a1, CPoint &a2){double d;d = sqrt((a1.getX() - a2.getX()) * (a1.getX() - a2.getX()) + (a1.getY() - a2.getY()) * (a1.getY() - a2.getY()));cout << "用普通函数输出" << "两点之间的距离:" << d << endl;}int main(){CPoint c1(2, 2);CPoint c2(5, 8); c1.Distance1(c2); Distance2(c1, c2);Distance3(c1, c2);system("pause");return 0;}
上机感言:友元函数太好了,不是成员函数却可以随便访问别人的家,但是也不是无拘无束的,必须的指定对象
- 第七周 任务二
- 第七周任务二
- 第七周 任务二
- 第七周任务二
- 第七周任务二
- 第七周任务二
- 第七周任务二
- 第七周任务二
- 第七周任务二
- 第七周任务二
- 第七周任务二
- 第七周任务(二)
- 《第七周实验报告任务二》
- 第七周实验报告任务二
- 第七周任务二 友元函数
- 第七周实验报告 任务二
- 第七周上机任务项目二
- 任务二第七个
- jQuery 参考手册 - 选择器
- 在一台机器上部署swift存储和swauth认证
- GBIF索引工具gbif-indexingtoolkit
- UVa系列——101/The Blocks Problem
- sql injection
- 第七周 任务二
- iBatis查询select详解
- 【转载】使用Ant进行ssh和scp操作
- C#多线程学习(三) 生产者和消费者
- 支持键盘输入的视图之设置键盘的特性
- GBIF数据注册gbif-registry介绍
- Android binder机制(1)
- Java中Class类工作原理详解
- Table导出到Excel时注意问题