📄 从c到c++看对象的产生.txt
字号:
作者:rick1126
email: rickzhang@sina.com
日期:8/8/2001 4:20:33 PM
1. 对象解决了数据和方法的封装以及变量的名字空间问题
1) 名字空间
以前的C里面, 所有变量包括DLL都共享同一个名字空间, 为此你不能保证每一个第三方提供的DLL都是互不冲突的.
2) 封装, 抽象, 继承, 多态
[封装]
封装是针对对象而言的, 以前我们封装数据和相应操作的方法是利用DLL, 现在我们可以使用对象将相关数据封装起来. 对象比较DLL更加符合我们显示世界的认知单位
[抽象]
抽象就是将现实世界中的对象进行一般化, 为此我们通常在进行系统分析和设计的时候, 将最最特殊的问题抽象成为类型 -- 注意, 特殊就是我们所关心的元素量最少, 最简单, 由简到繁的设计方式使得我们的系统更具扩展性.
[继承]
继承使得对象之间有了联系和层次. 通过向类型添加需要关心的元素, 新的类型派生出来.
[多态]
多态是现实世界的一种对待问题的方式
2. 从结构的角度看待对象
1) 类就是具有生命力的结构
结构是来自C的用户自定义类型方式, 加上方法就使得结构实例有了自己的"行为"能力, 成为"活生生"的对象. 这使得它具备了逻辑上的一种认识层次. 从计算机角度看, 结构就是2进制数据的结构化存储, 是对于内存空间的一种单元化使用, 添加了方法, 就是附加了相对应的函数指针, 有了这种认识, 对于我们以后学习COM涉及的虚函数和VTable都是很有帮助的. class和structure的区别仅仅在于出现的前后和默认存取类型的不同(class--private, structure--public), 所以我们以后接触到的COM的interface就是structure的宏定义而已
上面就是目前我对于类和对象的粗浅认识, 希望各位网友指正.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -