《C与C语言的区别》PPT课件.ppt_第1页
《C与C语言的区别》PPT课件.ppt_第2页
《C与C语言的区别》PPT课件.ppt_第3页
《C与C语言的区别》PPT课件.ppt_第4页
《C与C语言的区别》PPT课件.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计与VisualC+,本课程的意义voidmain()inta;constint*p;p=/正确,常指针使用const修饰指针时,由于const的位置不同,而含意不同。下面举两个例子,说明它们的区别。,(1).若声明指针常量,则指针pn所指向的变量是可以更新的,不可更新的是常量指针pn所指的方向。例:intn1=3;intconstn2=5;int*constpn=/正确,(2).若声明为指向常量的指针,则指针pn所指向的常量是不可以更新的,但可更新的是指针pn所指的方向。,例:intn1=3;intconstn2=5;constint*pn=/错误,1.2.3C+语言与C的细小区别3、构造变量的说明不必在之前加struct例如:C:structAstructaS;(结构)unionAunionaU;(联合)enumBoolaB;(枚举)C+:AstructaS;(结构)AunionaU;(联合)BoolaB;(枚举)4、变量的说明可放在程序任何位置例如(forinti=0;ia;C:scanf(%d,C+:#includeC:#include,1.2.3C+语言与C的细小区别7、动态单元C:#includefloat*p;p=(float*)malloc(sizeof(float);freep;q=(int*)calloc(10,sizeof(int);C+:float*p;p=new(float);deletep;q=newint10;,#include/例子example1.cppvoidmain()inti,m,len;int*p;coutm;p=newintm;if(p=NULL)coutpi;len=0;coutinputdataendl;for(i=0;im;i+)len+=pi*pi;coutsqr_sum=lenendl;deletep;,1.2.3C+语言与C的细小区别8、引用与引用调用引用为一个对象产生第二个名称,引用本身不是一个变量,只是一个变量的别名。定义如下:类型说明我们称A是B的引用。,引用的一些规则如下:(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。变量引用:以下示例程序中,k被初始化为i的引用。语句k=j并不能将k修改成为j的引用,只是把k的值改变成为6。由于k是i的引用,所以i的值也变成了6。inti=5;intj=6;int,按引用传递就是封装了的按指针传递!inttest(int函数里面就可修改原变量a1和c的值.只不过在test()中用a=20就可以修改a1的值,而需要*b=30修改c的值!,会发现“引用传递”的性质象“指针传递”,而书写方式象“值传递”。实际上“引用”可以做的任何事情“指针”也都能够做,为什么还要“引用”这东西?答案是“用适当的工具做恰如其分的工作”。指针能够毫无约束地操作内存中的如何东西,尽管指针功能强大,但是非常危险。就象一把刀,它可以用来砍树、裁纸、修指甲、理发等等,谁敢这样用?如果的确只需要借用一下某个对象的“别名”,那么就用“引用”,而不要用“指针”,以免发生意外。,1.2.3C+语言与C的细小区别9、函数重载-静态多态性函数的重载是面向对象程序设计的多态性的实现,重载使得:在同一个函数名下,有该函数的多个具体实现;不同的具体实现有不同参数列表;在函数被调用时,编译器通过对函数的实参和形参进行最大限度的匹配,选择一个该函数的具体实现。,比方说加法,加法可以用于整数和有理数等在C+里可以用两个函数来实现这个目的。intintadd(intv1,intv2)returnv1+v2;floatfloatadd(floatv1,floatv2)returnv1+v2;,使用的方式是这样的intia=1,ib=2,iab=0;floatfa=1.0,fb=2.0,fab=0.0;iab=intadd(ia,ib);fab=floatadd(fa,fb);这样看起来很不直观,可读性不强,我们的目的是让人一眼就可以看出是在做相加运算。,两个函数的返回值和参数并不一样,这样就可以区别开两个不同的行为。这个特性可不可以利用呢?答案是可以,C+贴心的为我们做好了一切。原理很简单,将函数的返回值和参数用一种可逆的编码方法变成一个字符串,安插在函数名后面,编译器向用户屏蔽这一切,用户可以用同一个名字来使用不同的函数。,就是这样intadd(intv1,intv2)returnv1+v2;floatadd(floatv1,floatv2)returnv1+v2;intia=1,ib=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论