zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    职场篇:聚焦与复盘
    职场篇:直面情绪杀手【已补更】
    .NetCore实践篇:成功解决分布式监控ZipKin聚合依赖问题(三)
    职场篇:为何我们需要思想大洗礼?
    职场篇:从温水煮青蛙说起
    .NetCore实践篇:分布式监控系统zipkin踩坑之路(二)
    postman application/json;
    yapi 个人空间 这个分组的问题
    yapi 的分组的理解!
    yapi的安装
  • 原文地址:https://www.cnblogs.com/denggelin/p/5661879.html
Copyright © 2011-2022 走看看