第1讲C 对C与类无关的性能扩充.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1讲C 对C与类无关的性能扩充

4/26/2001 GES DAAC C++对C语言的扩充 C语言的优点:高效、灵活并能够对底层操作。 C语言的缺点:是不具有支持代码重用的类的机制(类的封装机制),因而无法实现将问题的数据和对问题操作的方法组合在一起。 应用场合:一般适用于中小型程序的设计(程序代码长度在1万行之下)的编程。 C++的产生 产生的时期:80年代早期,贝尔实验室的Bjarne StroutStrup在C语言的基础上,同时吸收了BCPL、Simula 67和Alogl68等语言的精华而发展起来的以适应大型复杂程序开发与维护的一种面向对象的程序设计语言。 主要的特性:面向对象的程序设计语言。 应用场合:大型复杂程序的开发与维护 本质差别: 编程方法方面: C++对C的兼容是建立在发展和完善的基础上的,即C++是面向对象的程序设计语言; C语言是面向过程的程序设计语言。 程序结构方面: C++语言程序的结构采用“对象+消息”模式; C的程序结构采用“数据+算法”模式。 2. 兼容性: 主要体现在源代码的支持,大量C语言的程序稍微加以修改或不修改就可以在C++中编译通过并支持C语言的库函数和语法规则。 对系统库的支持。 保持C的简洁、高效和接近汇编语言等特性。 3. 改良:改进C中一些易产生错误的语法现象(容后介绍)。 语言中为什么要提供常量定义 C++中为什么要提供const ? C语言中的常量定义(使用编译预处理(宏定义指令): #define sumValue 10 此时的sumValue是char型还是int型? C++语言中的常量定义: const int sumValue=10; 其目的是替代C语言中的编译预处理命令#define(常量定义),但比它更加语义精确,因为#define无法准确地反映常量的数据类型。 const 修饰符的含义——不可更改! 一经const修饰后便不能修改此符号名之值。 例一: const int sumValue=10; sumValue=0; //错误 例二: void Display(const int *ptr, int n) { coutptr[0]; //==*(ptr+0),显示数组中的第一个元素之值 //ptr[0]=1; //错误,不能修改其值(不能通过指针来改变目标单元之值) //*ptr=1; //错误,不能修改其值(不能通过指针来改变目标单元之值) } const修饰指针的两种用法 (1)const int *ptr=X; 此时不能通过指针访问来改变目标单元之值,即*ptr=1 是错误的,但是ptr本身可以被改变 ptr=Y 此种用法常见于函数的形参。 void fun(const int * ptr) { *ptr=1; //错误的 } (2)int * const ptr=X; 此时ptr本身不可以被改变( ptr=Y是错误的);但ptr所指向的目标的单元之值是可以被改变的(如 *ptr=2; 即 X=2) ptr类似于数组名(常量指针)。 int ptr[10]; ptr[0]=2 区分符号名之前有无const时的不同 int sum=1; //无const修饰时 此时 sum为变量,意味着其值可以被改变(如:sum=2;);同时其内存字节数为两个字节(在16位机上)。 const int sum=1; //有const修饰时 此时 sum为常量,意味着其值不可以被改变(如:sum=2;);同时不需要占用内存空间。另外C++语言视经const修饰的符号名为常量特性,因而它可以用于任何可能出现数字常量的场合(如数组的大小的说明等)。 const int ArraySize=10; char array[ArraySize]; 区分C语言中的#define与C++中的const的不同 由#define所定义的符号名为全局性常量,因而在整个程序中应保持符号名的唯一性; const可以说明一个局部或全局性同名常量(据此可以改变const符号名之值)。 另外在语法方面,#define为编译预处理命令,而const为定义符,语句以“;”结束。 #define Min 1 const int Max=100; void main(void) { #define Min 2 //错误,不能再定义同名常量 const int Max=200; //可以再定义同名局部常量 } const的应用实例 例一:符号常量 float Ar

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档