• 5.3友元函数


    友元函数可以访问类的私有变量,还可以访问私有函数

    1 类本身的友元函数

    虽然在类中说明友元函数,但它并不是类的成员函数,所以可以在类外面像普通函数那样定义这个函数。

    在类中说明友元函数带friend,在类外面定义这个函数不带friend

    2 将成员函数用做友元

    3 将一个类说明为另一个类的友元

    若F类是A类的友元类,则F类的所有成员函数都是A类的友元函数。

    友元类通常设计为一种对数据操作或类之间传递消息的辅助类。

    //由于类fushu的构造函数的参数涉及类mianji,因此应该先定义类mianji,后定义类fushu

     1 #include <iostream>
     2 
     3 class mianji
     4 {
     5 public:
     6     friend class fushu;//将一个类说明为另一个类的友元
     7     mianji()//构造函数
     8     {
     9         this->cx = 0;
    10         this->cy = 0;
    11     }
    12     void setxy(int a, int b)
    13     {
    14         this->cx = a;
    15         this->cy = b;
    16     }
    17 private:
    18     int cx;
    19     int cy;
    20 };
    21 
    22 //由于类fushu的构造函数的参数涉及类mianji,因此应该先定义类mianji,后定义类fushu
    23 
    24 class fushu
    25 {
    26 public:
    27     fushu(mianji mianji1)//构造函数
    28     {
    29         this->x = mianji1.cx;
    30         this->y = mianji1.cy;
    31     }
    32     void print()
    33     {
    34         std::cout << x << "+" << y << "i" << std::endl;
    35     }
    36 private:
    37     int x;
    38     int y;
    39 };
    40 
    41 void main()
    42 {
    43     mianji mianji1;
    44 
    45     fushu fushu1(mianji1);//定义一个类fushu的对象,参数是一个类mianji的对象
    46     fushu1.print();
    47 
    48     fushu fushu2 = static_cast<fushu>(mianji1);//通过构造函数进行转换
    49     
    50     system("pause");
    51 }
  • 相关阅读:
    Linux之定时器与时间管理 【转】
    LDAP研究
    Mac中使用svn进行项目管理
    英国调查报告称中国梦吸引力首超美国梦
    怎样删除在Github中创建的项目
    MySQL分组数据
    Eclipse ADT 插件安装慢的解决的方法
    iOS插件化研究之中的一个——JavaScriptCore
    二维码的妙用:通过Zxing实现wifi账号password分享功能
    CF(435D
  • 原文地址:https://www.cnblogs.com/denggelin/p/5661879.html
Copyright © 2020-2023  润新知