成员函数,友元函数和一般函数有区别
来源:互联网 发布:bt下载软件 mac 编辑:程序博客网 时间:2024/04/28 16:33
/** 程序的版权和版本声明部分:* Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 文件名称:test.cpp* 作 者:周经纬* 完成日期:2014年 4月 8日* 版 本 号:v12.1* 成员函数,友元函数和一般函数有区别,* 输入描述:无* 问题描述:。* 程序输出:* 问题分析:略* 算法设计:略*/#include <iostream>#include <cmath>using namespace std;class dddd{public: dddd(int x1,int y1,int x2,int y2):Xx1(x1),Xx2(x2),Yx1(y1),Yx2(y2) {} void display1(); //display1是成员函数 friend void display2(dddd &); //display2是友元函数 int getXx1() { return Xx1; } int getXx2() { return Xx2; } int getYx1() { return Yx1; } int getYx2() { return Yx2; }private: int Xx1; int Xx2; int Yx1; int Yx2;};void dddd::display1() //成员函数display1的实现,dispaly1前加Time::{ //以hour形式直接访问私有数据成员,实质是this->hour形式 double d; cout<<"("<<Xx1<<","<<Yx1<<")"<<"("<<Xx2<<","<<Yx2<<")"<<endl; d=sqrt((Yx2-Yx1)*(Yx2-Yx1)+(Xx2-Xx1)*(Xx2-Xx1)); cout<<"两点间的距离是:"<<d<<endl;}void display2(dddd &t) //友元函数dispaly2的实现,不加Time::,友元并不是类的成员{ //虽然不是类的成员函数,却可以用t.hour的形式直接访问私有数据成员——这就是友元 double d; cout<<"("<<t.Xx1<<","<<t.Yx1<<")"<<"("<<t.Xx2<<","<<t.Yx2<<")"<<endl; d=sqrt((t.Yx2-t.Yx1)*(t.Yx2-t.Yx1)+(t.Xx2-t.Xx1)*(t.Xx2-t.Xx1)); cout<<"两点间的距离是:"<<d<<endl;}void display3(dddd &t) //display3是一般函数,dispaly3前不加Time::{ //不能直接访问,只能用公共接口t.getHour()形式访问私有数据成员 double d; cout<<"("<<t.getXx1()<<","<<t.getYx1()<<")"<<"("<<t.getXx2()<<","<<t.getYx2()<<")"<<endl; d=sqrt((t.getYx2()-t.getYx1())*(t.getYx2()-t.getYx1())+(t.getXx2()-t.getXx1())*(t.getXx2()-t.getXx1())); cout<<"两点间的距离是:"<<d<<endl;}int main(){ dddd t1(10,13,56,58); t1.display1(); //成员函数这样调用:对象名.函数名() display2(t1); //友员函数的调用和一般函数无异(但实现中可以不同) display3(t1); //一般函数的调用 return 0;}
感悟:这是我根据老师的例子,完全靠自己一点一点修改琢磨出来的,也许对兄弟们来说这题很简单,刚开始我看到老师有例题,我也感觉简单,但是往往不做题不了解做题的思想,短短的程序,自己想要想很多的方面,一点不对程序就跑不起来,看懂别人的跟自己做出来的完全不同的效果跟激励,就跟张梦佳说他那道题看错了一点,结果半小时没了似的,看别人的往往只看大体思路,完全对编程习惯没有任何帮助,当自己做题时手还是按不下按键,想不出思路总想看别人的给自己点启发,所以说以后我要尽量克服看一眼别人的才有思路的毛病,这题花了半小时,但我挺开心的。
0 0
- 成员函数,友元函数和一般函数有区别
- 成员函数、友元函数和一般函数有区别
- 成员函数、友元函数和一般函数有区别
- 成员函数、友元函数和一般函数有区别
- 成员函数、友元函数和一般函数有区别
- 成员函数,友元函数和一般函数 有区别。
- 成员函数友元函数和一般函数有区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别 一般函数
- 第六周 项目四-成员函数、友元函数和一般函数有区别 成员函数
- 成员函数,友元函数,一般函数有区别
- 成员函数,友元函数和一般函数之区别
- 成员函数,友元函数和一般函数的区别
- 成员函数友元函数和一般函数的区别
- 成员函数、友元函数和一般函数之区别
- 成员函数、友元函数和一般函数之区别
- 成员函数友元函数和一般函数区别
- 成员函数、友元函数和一般函数的区别
- 成员函数 友元函数 和 一般函数的区别
- TCP状态机-状态解析
- 【转载】浅谈https\ssl\数字证书
- 八皇后问题解法
- 拷贝构造函数
- Service的onServiceConnected没有被调用
- 成员函数,友元函数和一般函数有区别
- 斯的件佛顶山U树金风科
- 最大连续子序列和/乘积
- 深复制体验2
- U树金风科斯的件佛顶山U树金
- Android中蓝牙的基本使用----BluetoothAdapter类简介
- Eclipse快捷键
- C语言:全局变量在多个 c 文件中公用的方法
- 什么是 Web Service--面试