`
美丽的小岛
  • 浏览: 310897 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

友元类

    博客分类:
  • c++
 
阅读更多

声明:

 在类中用 friend class 友元类名;

作用:

在友元类的所有成员函数都可以访问此类中的所有数据

 格式: 

  • class 友元类名 ;//向前声明本类
  • class 拥有友元类的类名{....};//拥有友元类的类的定义
  • class 友元类名 {…}//友元的定义

 特点: 

  • 友元关系不能被继承
  • 友元关系是单向的,不具有交换性.若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明.
  • 友元关系不具有传递性.若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明

 

例子:

class B;   //友元类的向前声明
 class A    //拥有友元类的类的定义
 {
     int y;
 public:
     A()
     {
         y=4;
     }
     friend B;
 };
 
 class B  //友元类的定义
 {
 public:
     void show(A &a)
     {
         cout<<a.y<<endl;
     }
 };

 多个类包含一个友元类:

class C;  //友元类的向前声明
 class A   //拥有友元类的类的定义
 {
     int x;
 public:
     A()
     {
         x=4;
     }
     friend C;
 };
 
 class B   //拥有友元类的类的定义
 {
     int y;
 public:
     B()
     {
         y=6;
     }
     friend C;
 };
 
 class C    //友元类的定义
 {
 public:
     void show(A &a,B &b)
     {
         cout<<a.x<<"  "<<b.y<<endl; 
     }
 };
 
 void func()
 {
     A a;
     B b;
     C c;
     c.show(a,b);
 }

 一个类包含多个个友元类:

class B;    //友元类向前声明
 class C;    //友元类向前声明
 class A     //拥有友元类的定义
 {
     int x;
 public:
     A()
     {
         x=4;
     }
     friend C;
     friend B;
 };
 
 class B   //友元类的定义
 {
 public:
     void show(A &a)
     {
         cout<<"the value of a is: "<<a.x<<"        (in the class B)"<<endl; 
     }
 };
 class C   //友元类的定义
 {
 public:
     void show(A &a)
     {
         cout<<"the value of a is: "<<a.x<<"        (in the class C)"<<endl; 
     }
 };
 
 void func()
 {
     A a;
     B b;
     C c;
     b.show(a);
     c.show(a);
 }

 

分享到:
评论

相关推荐

    mfc友元类简单测试

    在“mfc友元类简单测试”中,我们将探讨如何使用MFC(Microsoft Foundation Classes)库来实现和测试友元类的功能。 首先,让我们理解友元类的概念。友元类是指在一个类中声明的另一个类,这个类能够访问声明它的类...

    友元类的使用 C++

    在C++编程语言中,友元类是一种能够访问其他类私有成员的特殊类。通过这种方式,友元类允许我们实现更紧密的类间交互。然而,要正确地使用友元类,需要对其特性有深入的理解,同时注意合理地设计程序结构以确保代码...

    友元类(C++基础教学)

    本教程将深入探讨如何声明和创建友元类以及它们在C++中的应用范围。 首先,让我们了解什么是友元类。友元类是指被声明为另一个类的朋友,即它可以访问该类的所有私有和受保护成员,而不仅仅是公共接口。这使得友元...

    C++友元类调用实例详解

    C++友元类调用实例详解 在 C++ 编程语言中,友元类(Friend Class)是一种特殊的类关系,允许一个类访问另一个类的私有成员和保护成员。本文将详细解释友元类的调用实例,包括友元类的定义、继承关系、成员访问控制...

    c++实现友元类(用vc++友元类程序的编写)

    友元类是通过在其中一个类的声明中声明另一个类为友元,从而使得友元类可以访问被声明类的私有和受保护成员。这种关系是非对称的,即A类可以是B类的友元,但B类未必是A类的友元。 在VC++6.0这个经典的集成开发环境...

    友元函数和友元类_友元函数用法_

    标题"友元函数和友元类"涉及到两个核心概念:友元函数和友元类。 **友元函数** 是一个非成员函数,但它被声明为某个类的友元,这意味着它可以直接访问该类的私有和受保护成员。友元函数不是类的成员,因此它们不在...

    C++友元函数及友元类全总结

    ### C++友元函数及友元类全总结 #### 一、引言 在C++编程语言中,封装性是一个非常重要的概念。封装使得对象的数据成员(尤其是私有成员)和成员函数得以隐藏,从而提高了代码的安全性和可维护性。然而,在某些...

    友元类实例代码

    友元是一种类与类外数据共享的机制,包括友元函数、友元成员、友元类三种

    c++ demo,全局友元类的实现

    在C++编程语言中,`全局友元类`是一个重要的概念,它允许一个类访问另一个类的私有或受保护的成员。这个知识点是C++中的封装原则的一个例外,但有时候为了实现某些特殊的需求,我们需要打破封装来共享数据或者功能。...

    友元函数和友元类的定义及使用.docx

    友元函数和友元类的定义及使用 友元函数和友元类是一种特殊的类关系,在 C++ 编程语言中.play a crucial role in defining the relationship between classes. 在本文中,我们将探讨友元函数和友元类的定义及使用,...

    友元类,友元函数,友元成员函数

    友元类、友元函数和友元成员函数是C++中实现类间交互的重要方式,它们帮助我们在设计复杂的数据结构和算法时打破封装的限制,提高代码的灵活性和效率。下面我们将深入探讨这三个概念及其工作原理。 首先,**友元类*...

    友元函数和友元类的定义及使用.pdf

    友元函数和友元类的定义及使用、运算符重载 本文将详细讲解友元函数和友元类的定义及使用,并结合实践案例,演示如何使用友元函数和友元类实现复杂的功能。同时,本文还将讲解运算符重载的概念和使用方法,并提供...

    友元函数和友元类的定义及使用 (2).pdf

    友元函数和友元类的定义及使用 在 C++ 编程语言中,友元函数和友元类是两个重要的概念,它们在对象之间的关系和交互中扮演着关键角色。下面将详细介绍友元函数和友元类的定义及使用。 一、友元函数 友元函数是指...

    友元函数及友元类.docx

    友元函数及友元类 友元函数及友元类是 C++ 编程语言中的一种机制,允许一个类授予其他类或函数访问其私有成员的权限。友元可以是函数或其他类,类授予它的友元特别的访问权。 友元函数是一种特殊的函数,它不是...

    友元函数及友元类.pdf

    友元函数及友元类 在 C++ 程序设计中,友元函数和友元类是两个重要的概念,它们允许其他类或函数访问当前类的私有成员,从而实现了数据隐藏和访问控制。 什么是友元? 友元是指允许其他类或函数访问当前类的私有...

    友元函数和友元类的定义及使用 (2).docx

    友元函数和友元类的定义及使用 友元函数和友元类是C++编程语言中两个重要的概念,它们在对象oriented programming(面向对象编程)中扮演着重要角色。本文将详细介绍友元函数和友元类的定义及使用,包括它们的概念...

    c++友元函数与友元类的深入解析

    友元函数和友元类的需要:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又...

    类做友元类.zip

    在C++编程语言中,"类做友元类"是一个重要的概念,涉及到类之间的访问权限控制和合作。友元机制允许一个类访问另一个类的私有(private)和保护(protected)成员,打破了封装的界限,以实现更灵活的设计。在某些...

    C++ friend友元函数和友元类.pdf

    在C++中,友元分为友元函数和友元类。 1. 友元函数(Friend Function) 友元函数是在类的外部定义的函数,但被声明为该类的朋友,因此它可以访问该类的私有和受保护的成员。在例子中,`show()`函数被声明为`...

    C++ friend友元函数和友元类 (2).docx

    友元类(Friend Class)是指一个类可以声明另一个类为它的友元,这样友元类的所有成员函数都可以访问声明它的类的私有和受保护成员。声明友元类的方式也是在类定义中使用`friend`关键字,后面跟着友元类的名字。例如...

Global site tag (gtag.js) - Google Analytics