C++为什么要设计友元函数和友元类
2015-06-13 23:28
239 查看
1、
首先要提一下java,比如java定义一个类1.class,会生成字节码。java有反射机制,可以找到类对象,直接修改类的私有属性。逐渐反射机制成为了一种标准,sun做成标准,JDK的API函数中有所体现。
2、
1.cpp===>汇编
要经过预编译,编译,链接,生成。。对应gcc
而如果汇编往回找,会非常难。
3、
所以C++开了后门,用friend破坏类的封装性。。。不过确实有一些需要用到这种机制的地方,具体应用场景之后的博文中再阐述。
首先要提一下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破坏类的封装性。。。不过确实有一些需要用到这种机制的地方,具体应用场景之后的博文中再阐述。
相关文章推荐
- 学生cpp成绩统计 【基类派生类练习】
- 大话设计模式C++版——抽象工厂模式
- 大话设计模式C++版——抽象工厂模式
- String的c语言实现
- 【好程序员笔记分享】—— C语言指针的理解
- 开始学习C++心得实例(1)
- c/c++回车不换行
- Cpp Primer<<学习IO标准库--文件模式、字符串流_7
- 吉哥系列故事――临时工计划
- C++ const关键字总结
- 小程序之计算器 【C++ STL栈实现】 + 【C 数组模拟栈实现】 【适用VC, DEV, codeblack】
- 如何在游戏中实现穿墙功能
- c++ map
- 大话设计模式C++版——工厂方法模式
- 大话设计模式C++版——工厂方法模式
- C++默认参数
- chapter12test5
- MP3 文件格式解析
- 小明系列故事――买年货
- 【学习笔记】【C语言】循环结构-for