深入理解C++语言--从本质上理解C与C++.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本文由长春白癜风专科医院/ 收集,转载请注明出处 深入理解C++语言--从本质上理解C 与C++ 如果说任何事物都可以抽象为一种数据结构,这个数据结构肯定要 有我们想操作的对象--该事物本身(它包括各种属性、要素),定义为 数据;而这个事物本身(数据)肯定能进行各种各样的操作,如整数能 +-*/%等,开关有开、关等操作,这各种各样的操作即为运算;既然是 运算可定有运算规则,如浮点数就不能进行取余运算,开关不能吃等; 总结起来: 个人认为,C 语言可以说是以数值型数据结构 (如void,char, int,float )为基础,抽象出来的语言;它的任何操作都都被局限于数值 型数据结构这一层面上了,即使有构造类型struct 可以定义些复杂类型, 但是它还是需要人工进行显式地赋值(详细见下面说明),可以说构造 类型struct 可以上C 语言拥有面向对象的思想,但是实现不了真正的面 向对象,同时也可以理解为什么被称为面向过程的了。因此可以看出C 语言中各种操作都是围绕变量和函数,变量是如下类型的数值型数据结 构,而函数是针对这些变量的数值型运算! 本文由吉林白癜风医院/ 收集,转载请注明出处 本文由长春白癜风专科医院/ 收集,转载请注明出处 利用struct 构造类型已经初步具有面向对象的思想了(如Linux 内核完全使用C 语言编写,但是使用了很多面向对象的思想),但是它 仍然局限于数值型数据结构这一层面上,因为构造类型struct 中成员函 数不能直接定义,仍需利用指针,然后对于指针进行函数地址的赋值(数 值的赋值),并且C 定义的struct 构造类型不能实现封装、隐藏,所有 数据都是人工显式执行的,见下面实例分析。 例如,定义一个new_type 的数据结构,包含了a,b 两个操作数(数 据),还有一个对于这两操作数的运算add 。 [cpp] view plaincopy 1. struct new_type{ 2. int a; 3. int b; 4. int (*add)(int a, int b); 5. }; 6. 7. int f_add(int a, intb) 8. { 9. return a+b; 本文由吉林白癜风医院/ 收集,转载请注明出处 本文由长春白癜风专科医院/ 收集,转载请注明出处 10. } 11. 12. struct new_type test; 13. test.add=f_add; //1。可以看出是基于数值型数据结构层面的赋值 14. test-add(test.a, test.b); //2。所有数据都是显式地调用执行的 见上,即使有struct 构造类型可以定义些复杂类型,但是它还是需要人 工进行显式地赋值(如1);而且它还要在其他函数中显式地调用,不 能实现封装、隐藏(如2 )。 class 与struct 之间的区别 本文由吉林白癜风医院/ 收集,转载请注明出处 本文由长春白癜风专科医院/ 收集,转载请注明出处 面向过程的C 是基于数值型数据结构,即使有struct 构造类型 可以定义些复杂类型,但是它还是需要人工进行显式地赋值;而且它还 要在其他函数中显式地调用,不能实现封装、隐藏。 而面向对象的C++则不同,它已经升华到基于非数值型数据结构 (当然也包含数值型数据结构),class 类,全部靠编译器实现相关联, 封装,隐藏,和重定向。 C++则是在C 基础上进一步抽象,升华到比C 更高的一个层面, 这样就不仅仅局限于数值型的数据结构了,通过类的定义把数据类型扩 展到非数值型的数据; 而运算符的重载则可以重新定义数值型运算(+-*/%等)对应于 非数值数据的运算 (如+-*/%等可以重定向为某一具体的操作)。 C++类的对象不仅仅是一般意义上的变量了,它的内部能够进行 自己的操作、运算,而对外却是黑盒,只是保留一个接口留给用户。 本文由吉林白癜风医院/ 收集,转载请注明出处

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档