成员函数,友元函数和一般函数有区别

来源:互联网 发布: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
原创粉丝点击