第07周:项目三:成员函数、友元函数和一般函数的区别
2014-04-09 22:59
190 查看
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 作 者:王颖 * 完成日期:2014 年 4 月 7 日 * 版 本 号:v1.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();//成员函数 friend void distance2(CPoint &);//友元函数 int getx(){return x;} int gety(){return y;} }; CPoint p; void CPoint::distance1() { double s; s=(p.x-x)*(p.x-x)+(p.y-y)*(p.y-y); cout<<sqrt(s)<<endl; } void distance2(CPoint &t) { //虽然不是类的成员函数,却可以用t.hour的形式直接访问私有数据成员——这就是友元 double s; s=(p.x-t.x)*(p.x-t.x)+(p.y-t.y)*(p.y-t.y); cout<<sqrt(s)<<endl; } void distance3(CPoint &t) { //不能直接访问,只能用公共接口t.getHour()形式访问私有数据成员 t.distance1(); } int main() { CPoint t1(1,6); CPoint p(3,5); cout<<"输出距离为:"<<endl; t1.distance1(); //成员函数这样调用:对象名.函数名() distance2(t1); //友员函数的调用和一般函数无异(但实现中可以不同) distance3(t1); //一般函数的调用 return 0; }
相关文章推荐
- 第六周 项目四--成员函数、友元函数和一般函数有区别(2)
- 第六周上机实践项目4-成员函数、友元函数和一般函数有区别
- C++第7周(春)项目3 成员函数、友元函数和一般函数有区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别 阅读
- 第7周项目1:成员函数、友元函数和一般函数有区别(1)
- 第六周 项目四 成员函数、友元函数和一般函数有区别(3)一般函数
- 第七周上机实践项目 项目1-成员函数,友元函数,和一般函数的区别(1)
- 第七周 项目1-成员函数、友元函数和一般函数有区别(1)友元
- 第六周 项目四--成员函数、友元函数和一般函数有区别(1)
- 项目二-成员函数、友元函数和一般函数之区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别之一般函数
- 第7周项目1:成员函数、友元函数和一般函数有区别(2)
- 第六周 【项目4-成员函数、友元函数和一般函数有区别】 (1)
- 第六周 项目四 成员函数、友元函数和一般函数有区别(1)成员函数
- 第六周项目4-成员函数、友元函数和一般函数有区别
- 2015年大一下第5周项目4-成员函数、友元函数和一般函数有区别
- 第七周 项目1-成员函数、友元函数和一般函数有区别(1)外部
- 第7周项目二-成员函数、友元函数和一般函数之区别 点类
- 第七周 项目1成员函数、友元函数和一般函数有区别
- 第六周项目4-成员函数、友元函数和一般函数有区别