zoukankan      html  css  js  c++  java
  • C++ friend关键字

      友元:友元函数 友元类。

      友元函数:不属于任何类,只是在类中声明一下(可以放在 private 或者 public,没有区别),告诉这个类,这个函数是你的朋友,当然朋友不是白当的:这个函数可以访问你的私有成员变量! 毫无疑问,这破坏了类的封装性,可能出现安全问题,那又怎么样~ 毕竟还是朋友。

      友元类:相当于使友元类里面所有的函数都变成了另一个类的友元函数。

      例如,以下语句说明类B是类A的友元类:

    class A{
    

    public:
    friend class B;

    };
    类B的所有成员函数都是类A的友元函数,能存取类A的私有成员和保护成员。

          使用友元类时注意:   (1) 友元关系不能被继承。
     

      (2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。

      (3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明 

      (4) 友元函数并不是类的成员函数,因此在类外定义的时候不能加上class::function name

       突然学到这个是因为给帮弟弟写homework,c++运算符重载用到的。

      

  • 相关阅读:
    Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    mac 上面安装mysql-python
    NSConditionLock
    NSCondition
    web.py 学习(二)Worker
    web.py 学习(-)Rocket web框架
    ARC 下面可能导致的内存问题
    WireShark 抓取Telnet包
    node.js里npm install --save 与 npm install --save-dev 的区别
    最近阅读链接
  • 原文地址:https://www.cnblogs.com/luntai/p/5592649.html
Copyright © 2011-2022 走看看