C++为什么要设计友元函数和友元类

1、

首先要提一下java,比如java定义一个类1.class,会生成字节码。java有反射机制,可以找到类对象,直接修改类的私有属性。逐渐反射机制成为了一种标准,sun做成标准,JDK的API函数中有所体现。

2、

1.cpp===>汇编

要经过预编译,编译,链接,生成。。对应gcc

gcc -E hello.c -o hello.i(预处理)
gcc -S hello.i -o hello.s(编译)
gcc -c hello.s -o hello.o(汇编)
gcc hello.o -o hello(链接)

而如果汇编往回找,会非常难。

3、

所以C++开了后门,用friend破坏类的封装性。。。不过确实有一些需要用到这种机制的地方,具体应用场景之后的博文中再阐述。

原文地址:https://www.cnblogs.com/zhangyaoqi/p/4591581.html