美文网首页
15 类和对象--友元

15 类和对象--友元

作者: ca8519be679b | 来源:发表于2020-10-26 22:59 被阅读0次

友元

什么是友元呢,第一次听吧,我们之前类中定义了私有属性,外部是无法访问和调用的,我们让外部的函数或者类访问类私有属性就成为友元,关键字friend

全局函数做友元

1

如上,我们外部函数访问对象的共有属性是可以的

2

但是,我们尝试访问私有属性肯定会报错,之前也讲过了权限的问题。

3

如上,友元很简单,就是在类定义内部最上加上函数的声明,同时加上friend修饰,就表示这个函数可以访问私有属性了,结果就被看到内衣

类作为友元

单类做友元很简单,这里顺带加上了类外定义方法的实现

4

如上,我们定义Man,可以在public里声明无参构造,然后在类外使用Man::Man(){}定义方法内容,同样,Woman也是,但是类非构造方法要加上返回类型,当然,我们因为money是默认私有的,这么访问肯定报错

5

但是我们给Man类开始声明友元类friend class Woman;可以实现访问私有属性。

成员函数做友元

有时候觉得把整个类都做友元有点大,希望类的某些方法可访问,另一些不可访问,就要给成员函数设置友元

6

如上,我们设置Woman有2个check方法,想只给check1设置友元,就在Man里声明友元成员方法,注意,这里Man作为Woman的属性指针,需要先声明,但是后面定义。

相关文章

  • 15 类和对象--友元

    友元 什么是友元呢,第一次听吧,我们之前类中定义了私有属性,外部是无法访问和调用的,我们让外部的函数或者类访问类私...

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

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

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

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

  • C++语言基础(03)

    1.内存分配 C/C++ 内存分区: java 创建对象 2.常函数 3.友元函数和友元类 友元函数 友元类 4....

  • C++——友元friend,实践

    一、友元的概念 同类之间是不需要友元的 只有不同类之间需要友元 友元friend可以让类B的对象高效地访问类A的私...

  • 对象、类对象和元类对象

    http://www.tuicool.com/articles/mmyuUr http://blog.csdn.n...

  • 1.2.06_C++ 友元函数

    C++ 类 & 对象 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protec...

  • Category实现原理

    依赖runtime 动态的将分类的方法和类方法合并到类对象和元类对象的方法列表中 (对实例对象 类对象 元类对...

  • 友元函数和友元类

    采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间...

  • 友元类和嵌套类

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

网友评论

      本文标题:15 类和对象--友元

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