zoukankan      html  css  js  c++  java
  • 友元

      定义:形如friend func1();使普通函数能够访问类的友元,实现位置可以在类外或类中,实现代码与普通函数相同,友元关系不能被继承是单向不具有交换性,

        在实现类之间数据共享时减少系统开销,提高效率等

      优点:能够提高效率,表达简单,清晰

      缺点:友元破坏了封装机制,尽量不使用友元

      声明:放在类的公有区和私有区都没有关系

      使用:1. 运算符重载的某些场合需要使用友元 2. 两个类要共享数据的时候

      实例:class INTEGER {

          friend void A::Print(const INTEGER &obj);  //声明这个类的友元函数,那么在其他地方调用这个函数就可以访问类的所有内容,声明时必须明确指出该成员函数属于哪个类

          friend class A;              //声明友元类

          };

          void Print(const InteGER &obj) {函数体}

          void main() {

            INTEGER obj;

            Print(obj);            // 调用友元函数

            }

          可以在一个头文件或源文件中定义多个类,然后将它们声明为各自的友元类,在源文件定义各自类中的函数时需要加域作用符

          在声明为某个类的友元之前,其必须是程序中的一个已经定义过的类,不能新声明一个类,然后说它是谁谁谁的友元

            public:void initialize();

            friend void g(X*, int);    // Global friend

            friend void Y::f(X*);      // Struct member friend

            friend struct Z;        //Entire struct is a friend

            friend void h();

            friend calss class-name

  • 相关阅读:
    java web图片显示到浏览器
    Spring MVC + jpa框架搭建,及全面分析
    spring常用jar包总结(转载)
    搭建基于Maven的SSM框架
    线程同步的几种方法
    HttpServlet容器响应Web客户流程
    forword 与 redirect
    Hibernate状态转换
    String StringBuffer StringBuilder 对比
    位运算符
  • 原文地址:https://www.cnblogs.com/qianqiannian/p/6596554.html
Copyright © 2011-2022 走看看