友元

作者: 李永开 | 来源:发表于2021-08-19 08:26 被阅读0次

一.友元

友元函数,目的是访问类中的私有成员属性

  • 友元关系不能被继承
  • 友元关系是单向的,类A是类B的朋友,单类B不一定是类A的朋友

二.全局函数做友元函数

//
//  main.c
//  cdemo
//
//  Created by liyongkai on 2021/6/6.
//

#include <iostream>
using namespace std;

class Person{
//加上这句话,下面就不会报  't' is a private member of 'Person'
friend void test(Person *person);
    
public:
    int p = 10;
private:
    int t = 20;
};

//这是一个全局函数
void test(Person *person) {
    cout << person->p << endl;
    cout << person->t << endl;//'t' is a private member of 'Person'
}

int main(int argc, const char * argv[]) {
    
    test(new Person);
    
    return 0;
}

三.整个类作为友元类

//
//  main.c
//  cdemo
//
//  Created by liyongkai on 2021/6/6.
//

#include <iostream>
using namespace std;

class Person{
friend class Dog;//友元类
    
public:
    int p = 10;
private:
    int t = 20;
};

class Dog{
public:
    void showPerson(Person *person){
        cout << person->t << endl;//'t' is a private member of 'Person'
    };
};


int main(int argc, const char * argv[]) {
    
    Dog().showPerson(new Person);
    
    return 0;
}

四.其他类的成员函数也可以作为友元类

相关文章

  • 第十一章 使用类(2)友元

    (二)友元 1.友元的概念 友元有三种:友元函数,友元类,友元成员函数。这里主要介绍友元函数。通过让函数成为类的...

  • 友元类和嵌套类

    友元类 友元函数用于类的扩展接口中,类并非只能拥有友元函数,也可以将类作为友元,该类称为友元类。 友元类的所有方法...

  • 友元函数/友元类

    引入 当某一类或函数需要访问或使用另一类的私有函数或变量时,引入友元。例如:你的银行卡号是私有的,别人不能访问,但...

  • C++入门10 -- 友元,内部类,运算符重载

    友元 友元包含友元函数和友元类; 若将函数A(非成员函数)声明为类C的友元函数,那么函数A就能直接访问类C对象的所...

  • C++ 友元,内部类,运算符重载

    友元 友元包括友元函数和友元类 如果将函数A(非成员函数)声明为类C的友元函数,那么函数A就能直接访问类C对象的所...

  • 友元(友元函数、友元类和友元成员函数) C++

    原文地址: https://www.cnblogs.com/zhuguanhao/p/6286145.html 有...

  • c++ 友元

    在c++中,通过关键字friend声明为友元。友元可以范围与其有好友关系的类中私有成员。友元包括友元函数和友元类。...

  • 友元

    某些情况下,需要在类的外部直接访问私有和保护成员,以提高效率,避免参数传递、类型检查和安全性造成时间浪费。为此,引...

  • 友元

    ^友元的概念和定义 遵循一定规则而使对象以外的软件系统能够不经过消息传递方式直接使用访问对象内封装数据成员的技术方...

  • 友元

    1.友元的三种形式 (1).普通的非成员函数被定义为类的友元函数 友元函数的声明可以放在私有部分,也可在公有部分,...

网友评论

      本文标题:友元

      本文链接:https://www.haomeiwen.com/subject/ilrobltx.html