zoukankan      html  css  js  c++  java
  • 成员函数和友元函数对比完成同一个实例

    源程序:

    #include <iostream>
    #include <cmath>
    using namespace std;

    class Pixel;
    class Test
    {
    public:
    void printX(Pixel p);
    };

    class Pixel
    {
    private:
    int x,y;
    public:
    Pixel(int x0,int y0)
    {
    x=x0;
    y=y0;
    }
    void printxy()
    {
    cout<<"pixel:("<<x<<","<<y<<")"<<endl;
    }

    double getDist1(Pixel p);  //成员函数
    friend double getDist(Pixel p1,Pixel p2);  //友元函数

    friend void Test::printX(Pixel p);
    };

    double Pixel::getDist1(Pixel p)   //成员函数的定义
    {
    return sqrt((this->x-p.x)*(this->x-p.x)+(this->y-p.y)*(this->y-p.y));
    }

    void Test::printX(Pixel p)
    {
    cout<<"x="<<p.x<<"\ty="<<p.y<<endl;
    }

    double getDist(Pixel p1,Pixel p2)  //友元函数的定义
    {
    double xd=double(p1.x-p2.x);
    double yd=double(p1.y-p2.y);
    return sqrt(xd*xd+yd*yd);
    }

    int main()
    {
    Pixel p1(0,0),p2(10,10);
    p1.printxy();
    p2.printxy();

    cout<<"(p1,p2)间距离="<<p1.getDist1(p2)<<endl;

    //cout<<"(p1,p2)间距离="<<getDist(p1,p2)<<endl;
    //Test t;
    //cout<<"从友元函数中输出---"<<endl;
    //t.printX(p1);
    //t.printX(p2);
    return 1;
    }

  • 相关阅读:
    Sass
    小程序_统计字符
    小程序_乘法表
    abbreviation(缩写)
    Linux命令整理
    生出树状的文件夹结构
    Excel的使用技巧
    小程序_数字从小到大输出
    Delphi 之Inherited详解
    学习结构[记录]类型(4)
  • 原文地址:https://www.cnblogs.com/duanqibo/p/15614258.html
Copyright © 2011-2022 走看看