zoukankan      html  css  js  c++  java
  • C++ 友元

     友元 == 有缘。

    没错~有缘之后可以做很多事情,比如去你家蹭吃蹭喝..

    C++中 类的友元(包括友元函数,友元类),可以访问该类的私有和继承变量。虽然破坏了封装性,却也为编程提供了便利。是一种共享数据的方式之一(除此之外还有,静态数据,全局变量)。

    下面描述友元应用的场景:现在有两个类A,B。B需要获取A中的private数据,有两种方式,通过接口获取数据,或者B(或其成员函数)成为A的友元直接访问数据。假设,调用数据非常频繁,这时使用友元就可以提高效率但是,当A中的数据结构发生改变时,B的函数也要发生相应改变。接口的好处~封装的威力XD

    友元函数:

    在要成为其友元的类中声明该函数,并在函数前增加friend关键字即可。

    #include <iostream>
    using namespace std;
    
    class a
    {
    public:
         friend void output(a& test);
         a(int i){count = i;};
    private:
         int count;
    };
    
    void output(a& test)
    {
        cout<<test.count<<endl;//private也照样访问
    }
    
    int main()
    {
        a test(1);
        output(test);
        getchar();
        return 0;
    }

    友元类:

    与友元函数一样,在组合类的时候,在类前加上friend关键词。这样,整个类的成员函数都是他的友元函数 - -,一大家子····

    此处代码省略。

    最后

    友元关系不是双向的,B是A的友元,表示B能访问A的private和protect。但是反过来就不成立了。

  • 相关阅读:
    StringTokenizer类的使用
    ResultSet相关ResultSetMetaData详细
    jdbcTemplate 获取数据表结构
    关于数组和List之间相互转换的方法
    cat ,more, Less区别
    落地数据和不落地数据
    eclipse代码格式化
    如何修改word的项目编号
    .Net配置文件——反射+配置文件存储类型实例
    unix mkdir命令的使用方法
  • 原文地址:https://www.cnblogs.com/CAION/p/2839424.html
Copyright © 2011-2022 走看看